1. 程式人生 > >mysql5.6快速安裝及參數詳解

mysql5.6快速安裝及參數詳解

配置 long 其他 pool yum安裝 復制 快的 路徑 char

一、所需軟件

軟件名稱版本下載地址當前環境管理員賬號/密碼
mysql5.6yum安裝centOS6.7系統zxfly/zxfly

二、安裝說明

數據庫所在目錄/database/mysql新建目錄mysql
sock文件路徑/var/lib/mysql/mysql.sock自動生成
配置文件路徑/etc/my.cnf
慢查詢日誌路徑/var/log/mysql/mysql_slow_query.log新建mysql日誌目錄
錯誤日誌路徑/var/log/mysql/mysqld.log
pid文件/var/run/mysqld/mysqld.pid自動生成
binlog日誌文件/database/mysql-bin/mysql_bin*.log新建目錄mysql-bin

三、安裝

1、下載yum源。

官網地址:http://dev.mysql.com/downloads/repo/yum/

centos7系統:

wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

centos6系統:

wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm

2、安裝rpm

rpm -Uvh mysql57-community-release-el6-7.noarch.rpm

3、修改yum源配置

vim /etc/yum.repos.d/mysql-community.repo

安裝mysql5.6操作

1、將enabled=1更改為enabled=0

2、將enabled=0更改為enabled=1

如圖:

4、安裝mysql

yum install mysql-community-server

5、替換配置文件

主庫配置文件:

技術分享 mysql主庫配置文件

從庫配置文件:

技術分享 mysql從庫配置文件

復制配置文件到/etc/my.cnf

主庫:cp my.cnf /etc/my.cnf

從庫:cp my_web_slave.cnf /etc/my.cnf

6、編輯配置文件:

vim /etc/my.cnf

#修改server-id=171替換成

server-id=[配置為安裝數據庫所在服務器的ip]

說明:如果部署的mysql服務是作為從庫來使用的話,還需要將bin_log項給註釋掉。

7、創建目錄

創建日誌所在目錄

mkdir -p /var/log/mysql

chown -R mysql.mysql /var/log/mysql

創建數據所在目錄

mkdir -p /database/mysql

chown -R mysql.mysql /database/mysql

創建binlog所在目錄(如果作為從庫的話,可以跳過)

mkdir -p /database/mysql-bin

chown -R mysql.mysql /database/mysql-bin

8、初始化、啟動

初始化數據庫

mysql_install_db --user=mysql --datadir=/database/mysql

啟動

service mysqld start #(第一次時間會相對長點,需要初始化,請耐心等待)

9、初始化配置

命令 mysql_secure_installation

Enter current password for root (enter for none):[回車跳過]

et root password? [Y/n] y [是否設置root密碼]
New password: [輸入:zxfly]
Re-enter new password: [輸入:zxfly]
Remove anonymous users? [Y/n] y [刪除匿名用戶]
Disallow root login remotely? [Y/n] y [禁止root遠程登錄]
Remove test database and access to it? [Y/n] y [刪除test數據庫]
Reload privilege tables now? [Y/n] y [刷新權限]

10、創建一個管理員賬號

#登錄mysql

mysql -uroot -pzxfly

#創建賬號grant all on *.* to ‘zxfly‘@‘192.168.0.% ‘ identified by ‘zxfly‘; [授權管理所用庫]FLUSH PRIVILEGES; [刷新權限,寫入磁盤]

四、主從復制

MySQL主從部署文檔

五、配置文件說明

1、基本配置

[mysqld]

#配置項說明
1user=mysql啟動用戶
2datadir=/database/mysql數據庫所在路徑
3socket=/var/lib/mysql/mysql.socksock文件所在目錄
4skip-name-resolve禁用DNS解析,訪問太慢加入此優化
5symbolic-links=0關閉符號連接
6slow_query_log_file = /var/log/mysql_slow_query.log慢查詢日誌所在路徑
7long_query_time=1記錄1秒以上的慢查詢
8slow_query_log=1開啟慢查詢
9server-id=171每一個mysql實例設置一個獨立的server-id一般以IP定義
10log_bin=/database/mysql/mysql_bin二進制文件所在路徑及格式
11

binlog_format=mixed

定義二進制文件輸出的格式(混合型)

可定義類型:

1、row

詳細記錄所有,會產生大量的日誌。

2、statement(默認)

記錄sql語句,及其位置。在復雜的語句時可能記錄不正確。

3、mixed

以上兩種的結合,會自動選擇。

12sync-binlog=1

默認為0 1是最安全的。

1、當出現錯誤的時候,設置為1,最多會丟失一個事務。

2、他是最慢的選擇。

3、但是確保恢復快的話,應該由雙電源緩存機制存在。

13expire_logs_days=14保留二進制文件的天數

[mysqld_safe]

#配置項說明
1log-error=/var/log/mysqld.log錯誤日誌路徑
2

pid-file=/var/run/mysqld/mysqld.pid

pid文件所在路徑

2、優化項配置

#innodb引擎優化

#配置項說明
1innodb_buffer_pool_size=104G

緩存innodb表的索引,數據,插入數據時的緩沖,

1、官方建議設置為內存大小的80%,線上所掛載的大小為160G,可用130G,所以設置為104G

2、

2innodb_log_file_size=512M

事務日誌的大小

官方推薦為:日誌大小*日誌組大小(默認為2)不能超過512G

1、該值越大,寫入磁盤IO越小,

2、該值越大,出現錯誤恢復越難

3、默認為48M,修改為512M,也就是在大並發的時候1G的日誌刷入。

4、如果該值調大,並且為了減少崩潰恢復,應該將下main的innodb_flush_log_at_trx_commit改為1

3innodb_log_buffer_size = 8M事務在內存中的緩沖大小
4innodb_flush_log_at_trx_commit=2每秒將事務日誌刷到磁盤中 (0:每秒刷一次 1:提交事務就刷入磁盤 2:有事務執行,然後每秒刷一次)
5innodb_file_per_table=1開啟共享表空間自動收縮
6innodb_file_io_threads=4可用的IO線程數
7innodb_flush_method=O_DIRECT定義刷寫模式(默認為:fdatasync) O_DIRECT會最小化緩沖對io的影響,
8innodb_io_capacity=2000定義讀寫IO的能力 和磁盤轉速及大小有關
9innodb_io_capacity_max=6000每秒最大IO能力
10innodb_lru_scan_depth=2000一般與innodb_io_capacity的值相同
11innodb_thread_concurrency = 0不限制並發線程數

#cache緩存優化

#配置項說明
1tmp_table_size=2G內部(內存中)臨時表的最大大小
2character-set-server=utf8更改默認字符集
3collation-server=utf8_general_ci指定字符串的比對規則
4skip-external-locking跳過外部鎖定
5back_log=1024監聽隊列中所能保持的連接數
6key_buffer_size=1024M關鍵詞緩沖的大小
7thread_stack=256k線程使用的堆大小. 此容量的內存在每次連接時被預留
8read_buffer_size=8M全表掃描的緩沖大小
9thread_cache_size=64在cache 中保留用於重用的線程個數
10query_cache_size=128M查詢緩沖大小,保留select查詢,下次同樣查詢可以直接返回結果
11max_heap_table_size=256M每個表所允許的內存的最大容量(防止內存被大表直接占用完)
13query_cache_type=1開啟查詢緩存
14binlog_cache_size = 2Mbinlog記錄事務所保留的緩存大小
15table_open_cache=128每個線程允許打開表的數量
16thread_cache=1024保留的用於從重用的線程數
17thread_concurrency=24向系統發送希望用到的線程的個數(一般為CPU的數量的二到四倍)
18wait_timeout=18000sleep操作最大等待時間(即一個後臺運行的命令最大時間)
19join_buffer_size = 1024M優化全聯合,當聯合表操作時,使用此緩存
20sort_buffer_size=8M排序操作緩存
21read_rnd_buffer_size = 8M排序完成後會放入此緩存,可以減少磁盤IO
22max-connect-errors=100000負責阻止過多嘗試失敗的客戶端以防止暴力破解密碼
23max-connections=3000最大連接數
24explicit_defaults_for_timestamp=true開啟查詢緩存
25sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES定義其工作模式,mysql會自動選擇定義的模式

六、檢查

1、查看進程是否存在

ps -ef|grep mysql

2、查看是否可以登錄

mysql -uttedudb -pttedudb

七、監控

1、zabbix-mysql監控

2、zabbix-mysql主從監控

八、啟動、關閉和登錄

1、啟動

service mysqld start

2、關閉

service mysqld stop

3、重啟

service mysqld restart

4、登錄

mysql -uttedudb -pttedudb

九、壓力測試

十、其他

mysql備份&還原

mysql5.6快速安裝及參數詳解