bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Mysql數據庫的編譯安裝及基礎教程-創新互聯

為東明等地區用戶提供了全套網頁設計制作服務,及東明網站建設行業解決方案。主營業務為成都網站制作、網站設計、外貿網站建設、東明網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

下文內容主要給大家帶來Mysql數據庫的編譯安裝及基礎教程,所講到的知識,與書籍略有不同,都是創新互聯專業技術人員在與用戶接觸過程中,總結出來的,具有一定的經驗分享價值,希望給廣大讀者帶來幫助。

一、為什么會有數據庫呢?

   剛開始接觸數據庫的朋友們,都會問數據庫用來干啥的呢?字面表達的意思就是用來存儲數據的倉庫簡稱"數據庫",在日常生活中我們與數據庫相關的事務都是一大把一大把的,例如: 1.我們去做火車的時候需要實名認證,為什么安檢人員可以通過我們的×××就可以查詢我們的個人信息呢,因為們都是有戶口的群眾,在公安居民信息庫都錄入著我們的信息,而們的信息也是存儲在國家公民的信息庫里面的,這也是我們所說的數據庫,早期最傳統的數據庫就是文本文件,沒當查詢數據時都需要從頭到尾把整個文件都查詢一次,查詢和檢索的效率極其低下,隨著互聯網大數據的爆發,這種方式以及面臨淘汰,于是后來開發產生出各種各樣的數據管理程序,這就是數據庫的開端及新生。

Mysql數據庫的編譯安裝及基礎教程

文本數據庫管理數據的缺陷:

  1. 數據冗余、信息冗余產生及數據完整性:導致同一個數據有可能重復多次。

  2. 數據訪問緩慢麻煩。

  3. 數據孤立性:數據拆分很難再次建立關聯關系。

  4. 原子性問題:有效保證數據庫之間交互,能及時同步數據。

  5. 并發訪問:文件方式無法實現多并發訪問。

  6. 安全性問題:文件方式授權過于籠統,不能實現精細化授權(如:針對庫授權、針對表授權、針對用戶授權)

數據庫管理系統

   為了更加精細的操作數據的存取,在應用程序和數據之間建立一個中間層,專門用來負載數據存取和管理,就產生了數據庫管理系統(DBMS)。

Mysql數據庫的編譯安裝及基礎教程

(DBMS)數據庫管理系統,包含前端API接口與前端應用程序交互,也包含shell命令行接口與程序員直接交互。同時負責完成數據存取。這時,前端程序將不再直接面對數據,而有數據庫管理系統代理完成更加精細管理工作。包括權限,以及如何按照比較高效的方式分配數據。

數據庫模型:
1)層次模型
2)網狀模型
3)關系模型:1975年又IBM研究院E.F.Coded提出并發表了最開始論述關系型數據庫的模型論文,有拉里.克瑞森和其程序員朋友將其實現,后來承接了美國軍方一個名叫oracle的項目創建了oracle公司
4)NoSQL:No only SQL , 很多產品,各有側重點。 由于海量數據是由分布式存貯, 所以需要CAP測試,NoSQL 產品通常只能滿足兩個。
CAP測試: Consistent Avilable Partition tolerence 一致性, 可用性,容錯性

目前市面上的開源數據庫:

1)sqliteMySQL
2)PostgreSQL(EnterpriseDB)
3)MariaDB
4)MySQL

關系型數據庫管理模型:

Mysql數據庫的編譯安裝及基礎教程

存儲的文件: 

1)數據:保存的數據

2)索引:保存數據的索引文件

3)事物文件:操作事物文件 

2.磁盤空間管理器: 用于管理磁盤上數據的存取,建立索引等工作 

3.緩沖區管理器: 為了解決頻繁I/O的低效,一部分檢索結果會存在緩沖區中內存中,緩沖區管理器用于管理存于內存中

4.存取方法接口:管理數據的存取方法,于sql語句作用

5.事務管理器:當以個存取操作完成后,并不是直接寫入數據文件,而且寫入事物日志中,如果此時數據庫崩潰,數據庫存取數據將會存入事務日志中。寫入數據庫文件為隨機I/O,寫入日志文件為順序I/O 所以后者比較快。
事務:滿足ACID測試
 A:原子性
 C: 一致性
 I:隔離性
 D:持久性

6.鎖管理器:當某一數據在被用戶訪問時,它將不能再被其他用戶訪問,會被鎖管理器鎖住。

7.恢復管理器:存取操作寫入事務日志但沒寫入數據中時,數據庫崩潰,在第二次重新啟時候,事務日志中內容將通過恢復管理器寫入到數據文件中

8.SQL查詢引擎

1). SQL Struct Query Language:結構化查詢語言, 包含以下三類命令

   (1) DCL: Data Control Language: 數據控制語言,主要是授予或取消某些訪問權限

       GRANT/REVORK

   (2) DDL: Data Definition Language:數據定義語言,建立表,創建索引

       CTREAT/ALTER/DROP

   (3) DML : Data Manipulation Language:數據操作語言

       SELECT/INSERT/DELETE/UPDATE

2). SQL查詢引擎包含四個部分
   (1) 分析器,進行SQL語言的語法分析
   (2) 查詢計劃,對查詢對象路徑進行優化,有可能統一對象存在多條索引
   (3) 優化器, 對于SQL語言查詢方式進行優化
   (4) 求解器, 管理返回結果等
   (5) 線程池, 當mysql云服務器接收多個并發請求時,分配線程響應多用戶
9.SQL命令行接口: SQL的客戶端程序,使用SQL命令查詢SQL服務器
10.應用程序命令API:不同編程語言有不同的SQL命令輸出接口,可以通過API驅動把SQL語句輸送給SQL服務器,本質上也是SQL客戶端
11.ODBC: 底層關系型數據庫查詢標準
12.SQL索語言的標準 ANSI: SQL-86, SQL-89, SQL-92, SQL-99, SQL-2003

13.事務隔離:

    隔離級別:

                    讀未提交:read uncommitted

                    讀提交: read committed

                    可重讀:repeatable read

                    串行化: serializable

14.Mysql存儲引擎

            MyISAM:無事務

                    非聚集

            InnoDB:事務型

                    聚集索引

15.關系數據庫的約束:

                        主鍵

                        外鍵

                        惟一鍵

                        條件約束

                        非空約束

二、MySQL數據庫管理軟件安裝:

mysql程序來源: mysql.com
 1)vendor 系統自帶的rpm包
 2)MySQL官方rpm包:不建議使用,可能會打破依賴關系
 3)通用二進制格式:建議
 4)源碼編譯:建議

下面我們通過案例進入關系數據庫之MySQL生產實戰配置(編譯安裝):

操作系統:CentOS release 6.5(x64)

mysql版本:mysql-5.6.30

(1).安裝開發環境及開發包組:

# yum -y groupinstall "Development Tools" # yum -y groupinstall "Development Libraries" # yum -y install pcre-devel # yum -y install ncurses-devel # yum -y install openssl-devel

(2).安裝夸平臺編譯器cmake

# tar xf cmake-2.8.8.tar.gz  # cd cmake-2.8.8 # ./configure  # make && make install

(3).數據存儲目錄規劃準備:

規劃一個大小為:20G的邏輯卷,以便后期數據量擴展:

# fdisk /dev/sda # kpartx -l /dev/sda # kpartx -af /dev/sda # partx -a /dev/sda

創建邏輯分區管理:

# pvcreate /dev/sda3  # vgcreate myvg /dev/sda3  # lvcreate -L 10G -n mydata myvg

格式化掛載邏輯卷目錄:

# mke2fs -t ext4 /dev/myvg/mydata  # mkdir /mydata   #創建掛載目錄 # vim /etc/fstab  #在最后加入此行 /dev/myvg/mydata    /mydata            ext4    defaults,acl    0 0 # mount -a # mkdir /mydata/data # groupadd -r -g 3306 mysql                    #創建mysql服務用戶組 # useradd -r -g 3306 -d /mydata/data/ -s /sbin/nologin mysql    #創建mysql服務用戶 # chown mysql.mysql /mydata/data/

考慮生產環境數據安全,可使用ACL權限控制:

# setfacl -m u:mysql:rwx /mydata/data/ # getfacl /mydata/data/ getfacl: Removing leading '/' from absolute path names # file: mydata/data/ # owner: mysql # group: mysql user::rwx user:mysql:rwx group::r-x mask::rwx other::r-x

(4).編譯安裝mysql-5.5.33

編譯安裝之前我們需要設置主機名及主機名解析:

# hostname mysql.samlee.com # vim /etc/sysconfig/network  HOSTNAME=mysql.samlee.com # vim/etc/hosts  172.16.100.7    mysql.samlee.com

編譯安裝:

# tar xf mysql-5.5.33.tar.gz # cd mysql-5.5.33 # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ > -DMYSQL_DATADIR=/mydata/data \ > -DSYSCONFDIR=/etc \ > -DWITH_INNOBASE_STORAGE_ENGINE=1 \ > -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ > -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ > -DWITH_READLINE=1 \ > -DWITH_SSL=system \ > -DWITH_ZLIB=system \ > -DWITH_LIBWRAP=0 \ > -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ > -DDEFAULT_CHARSET=utf8 \ > -DDEFAULT_COLLATION=utf8_general_ci # make && make install

(5).數據庫服務器初始化

# cd /usr/local/mysql/ # chown -R :mysql /usr/local/mysql/    #賦予目錄用戶組為mysql #運行./script/mysql_install_db 創建系統庫  # scripts/mysql_install_db --user=mysql --datadir=/mydata/data/ # cp support-files/my-large.cnf /etc/my.cnf             #復制配置文件                                                        # vim/etc/my.cnf                                        #編輯配置文件 在[mysqld]下添加此項: datadir = /mydata/data # cp support-files/mysql.server /etc/init.d/mysqld        #復制啟動腳本 # chkconfig --add mysqld                                #加入服務列表 # service mysqld start                                    #啟動mysql服務

查詢初始化及啟動后創建的文件:

# ll /mydata/data/ total 28700 -rw-rw----. 1 mysql mysql 18874368 May  6 14:27 ibdata1                #inodb存儲引擎的表空間文件 -rw-rw----. 1 mysql mysql  5242880 May  6 14:27 ib_logfile0            #inodb事物日志     -rw-rw----. 1 mysql mysql  5242880 May  6 14:27 ib_logfile1 drwx------. 2 mysql root      4096 May  6 14:25 mysql -rw-rw----. 1 mysql mysql      107 May  6 14:27 mysql-bin.000001          #二進制日志 -rw-rw----. 1 mysql mysql       19 May  6 14:27 mysql-bin.index -rw-r-----. 1 mysql root      1777 May  6 14:27 mysql.samlee.com.err      #錯誤信息記錄 -rw-rw----. 1 mysql mysql        6 May  6 14:27 mysql.samlee.com.pid      #pid文件 drwx------. 2 mysql mysql     4096 May  6 14:25 performance_schema drwx------. 2 mysql root      4096 May  6 14:25 test

導出頭文件,庫文件和man文檔:

# ln -sv /usr/local/mysql/include/ /usr/include/mysql # vim /etc/ld.so.conf.d/mysql.conf 添加此行: /usr/local/mysql/lib/ # ldconfig # ldconfig -p | grep mysql # vim /etc/man.config  添加此行: MANPATH /usr/local/mysql/man # man mysqld

(6)配置PATH環境變量

# vim /etc/profile.d/mysql.sh export PATH=$PATH:/usr/local/mysql/bin # chmod +x /etc/profile.d/mysql.sh # . /etc/profile.d/mysql.sh

以上mysql編譯安裝過程。

、MySQL配置文件my.cnf及MySQL命令的應用:

1).服務器配置文件和客戶端配置是集中式的配置屬于多個應用程序共用的配置文件,可以分為以下3個部分:

(1)[mysql]:mysql客戶端配置部分,只是用來配置mysql自己的客戶端 。
(2)[mysqld]: mysql客戶端服務器配置部分。
(3)[client]:mysql的所有客戶端,包括其他的客戶端。

使用配置文件的方式:
   1、它依次查找每個需要查找的文件,結果是所有文件并集;
   2、如果某參數在多個文件中出現多次,后讀取的最終生效;

2).查詢mysql服務變量方式有如下:

(1)顯示mysqld程序啟動時可用的選項,通常都是長選項
(2)顯示mysqld的配置文件中可用的服務變量

# /usr/local/mysql/bin/mysqld --help --verbose

進入mysql模式查詢:

mysql> SHOW GLOBAL VARIABLES mysql> SHOW SESSION VARIABLES

3).修改mysql管理員密碼刪除匿名用戶:

用戶帳號由兩部分組成:username@host
host還可以使用通配符:
%: 任意長度的任意字符
_: 匹配任意單個字符

(1)刪除所有匿名用戶

mysql> DROP USER ''@'localhost';         mysql> DROP USER ''@'mysql.samlee.com';  mysql> DROP USER 'root'@'::1';

(2)修改管理員密碼

第1種方式:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('redhat'); mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('redhat'); mysql> SET PASSWORD FOR 'root'@'mysql.samlee.com' = PASSWORD('redhat'); mysql> FLUSH PRIVILEGES;

第2種方式:

# mysqladmin -uroot -h372.16.100.7 password 'redhat' -p # mysqladmin -uroot -hlocalhost password 'redhat' -p # mysqladmin -uroot -hmysql.samlee.com password 'redhat' -p

第3種方式:

# mysql -uroot -hlocalhost -p mysql> use mysql; mysql> UPDATE user SET password = PASSWORD('redhat') WHERE user = 'root'; mysql> FLUSH PRIVILEGES;

4).連入MySQL服務器

連接過程如下:

                    mysql client <--mysql protocol--> mysqld

mysqld接收連接請求:
   本地通信:客戶端與服務器端位于同一主機,而且還要基于127.0.0.1(localhost)地址或lo接口進行通信;
      Linux OR Unix: Unix Sock, /tmp/mysql.sock, /var/lib/mysql/mysql.sock
      Windows: memory, pipe
   遠程通信:客戶端與服務器位于不同的主機,或在同一主機便使用非回環地址通信
      TCP socket
客戶端工具:mysql, mysqladmin, mysqldump, mysqlcheck
   [client]
通行的選項:
      -u, --user=
      -h, --host=
      -p, --password=
      --protocol={tcp|socket|memory|pipe}
      --port=
      --socket=   例如:/tmp/mysql.sock
mysql默認監聽的端口: 3306/tcp

演示如下:

# mysql -uroot -hlocalhost -p Enter password:  # mysql -uroot -h327.0.0.1 -p --port=3306 --socket=/tmp/mysql.sock Enter password:

5).MySQL工作模式:

         腳本模式:

            # mysql -uUsername -hhostname -p < /path/to/mysql_script.sql

腳本演示如下:

Mysql數據庫的編譯安裝及基礎教程

mysql交互式模式:
   客戶端命令
      mysql> help
      mysql> \?
         \c:結束當前輸入執行
         \g:按列顯示
         \G:以行顯示
         \q:退出mysql
         \!
         \s
         \. /path/to/mysql_script.sql

服務器端命令:需要命令結束符,默認為分號(;)
      mysql> help contents
      mysql> help Keryword

mysql命令行選項:
   --compress
   --database=, -D
   -H, --html:輸出結果為html格式的文檔
   -X, --xml: 輸出格式為xml
   --sate-updates: 拒絕使用無where子句的update或delete命令;
Mysql數據庫的編譯安裝及基礎教程

mysql命令提示符:
   mysql> 等待輸入命令
   ->
   '>
   ">
   `>
   /*> 注釋信息

mysql的快捷鍵:
   Ctrl + w: 刪除光標之前的單詞
   Ctrl + u: 刪除光標之前至命令行首的所有內容
   Ctrl + y: 粘貼使用Ctrl+w或Ctrl+u刪除的內容
   Ctrl + a: 移動光標至行首
   Ctrl + e: 移動光標至行尾

mysqldmin工具:
   mysqladmin [options] command [arg] [command [arg]] ...

      command:
         create DB_NAME
         drop DB_NAME
         debug: 打開調試日志并記錄于error log中;

         status:顯示簡要狀態信息
            --sleep #: 間隔時長
            --count #: 顯示的批次


         extended-status: 輸出mysqld的各狀態變量及其值,相當于執行“mysql> SHOW GLOBAL STATUS”
         variables: 輸出mysqld的各服務器變量
         flush-hosts: 清空主機相關的緩存:DNS解析緩存,此前因為連接錯誤次數過多而被拒絕訪問mysqld的主機列表
         flush-logs: 日志滾動,二進制日志和中繼日志
         refresh: 相當于同時使用flush-logs和flush-hosts
         flush-privileges:
         reload: 功能同flush-privileges
         flush-status: 重置狀態變量的值
         flush-tables: 關閉當前打開的表文件句柄
         flush-threads:清空線程緩存
         kill: 殺死指定的線程,可以一次殺死多個線程,以逗號分隔,但不能有多余空格
         password: 修改當前用戶的密碼;
         ping:
         processlist:顯示mysql線程列表
         shutdown: 關閉mysqld進程;
         start-slave
         stop-slave: 啟動/關閉從服務器線程

實例演示:

# mysqladmin -uroot -hmysql.samlee.com status --sleep 1  -p # mysqladmin -uroot -hmysql.samlee.com variables -p

GUI客戶端工具:
   Navicat for mysql
   Toad for mysql
   mysql front
   sqlyog
   phpMyAdmin

對于以上關于Mysql數據庫的編譯安裝及基礎教程,如果大家還有更多需要了解的可以持續關注我們創新互聯的行業推新,如需獲取專業解答,可在官網聯系售前售后的,希望該文章可給大家帶來一定的知識更新。

另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

分享標題:Mysql數據庫的編譯安裝及基礎教程-創新互聯
網址分享:http://vcdvsql.cn/article42/pjchc.html

成都網站建設公司_創新互聯,為您提供軟件開發網站建設網站改版虛擬主機響應式網站微信公眾號

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

微信小程序開發