CentOS 6.9上安裝Mysql 5.7.18 安裝


CentOS 6.9上安裝Mysql 5.7.18 安裝

下載地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz

1、新建mysql用戶,組:

[root@001 ~]# groupadd mysql

[root@001 ~]# useradd -g mysql -r -s /sbin/nologin -M -d /data/mysqldata mysql

2、新建數據目錄及授權:

[root@001 ~]# mkdir -p /data/mysqldata

[root@001 ~]# chmod -R 770 /data/mysqldata

[root@001 ~]# chown -R mysql:mysql /data/mysqldata

3、解壓mysql,創建軟連接並修改屬組:

[root@001 ~]# tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /usr/local/

[root@001 ~]# cd /usr/local/

[root@001 local]# ln -sv mysql-5.7.18-linux-glibc2.5-x86_64/ mysql

[root@001 local]# cd mysql

[root@001 mysql]# chown -R mysql:mysql .

4、修改配置文件及初始化:

配置文件來自於網絡,原作者根據實際情況修改並注釋,具體參數自行修改

[root@001 mysql]# vim /etc/my.cnf

[client]

socket = /data/mysqldata/mysqld.sock

[mysqld]

pid-file = /data/mysqldata/mysqld.pid #根據實際填寫目錄

socket = /data/mysqldata/mysqld.sock #根據實際填寫目錄

datadir = /data/mysqldata #根據實際填寫目錄

log-error = /data/mysqldata/error.log #根據實際情況填寫

#==================================================================================================================================================

#bind-address = 127.0.0.1 bind-address后面增加遠程訪問IP地址或者禁掉這句話就可以讓遠程機登陸訪問了

#===================================================================================================================================================

#支持符號鏈接,就是可以通過軟連接的方式,管理其他目錄的數據庫,最好不要開啟,當一個磁盤或分區空間不夠時,可以開啟該參數將數據存儲到其他的磁盤或分區。

symbolic-links=0

#MySQL數據庫及表(MyISAM)支持符號鏈接(symbolic link),即數據庫或表可以存儲在my.cnf中指定datadir之外的分區或目錄。

#要支持符號鏈接,需要在配置中設置symbolic-links=1(較新的版本為默認開啟)

#===================================================================================================================================================

########basic settings########

server-id = 11

port = 3306

user = mysql

#==========================================================================================================================================================================

autocommit = 1 #設置autocommit=0,則用戶將一直處於某個事務中,直到執行一條commit提交或rollback語句才會結束當前事務重新開始一個新的事務。set autocommit=0的好處是在頻繁開啟事務的場景下,減>少一次begin的交互。

#==========================================================================================================================================================================

#==========================================================================================================================================================================

character_set_server=utf8mb4 #utf8mb4編碼是utf8編碼的超集,兼容utf8,並且能存儲4字節的表情字符。采用utf8mb4編碼的好處是:存儲與獲取數據的時候,不用再考慮表情字符的編碼與解碼問題。

#==========================================================================================================================================================================

skip_name_resolve = 1 #這個參數是禁止域名解析的(當然,也包括主機名)。很多童鞋會好奇,這背后的原理是什么,什么情況下開啟這個參數比較合適。

#=========================================================================================================================================================================

max_connections = 800 ## MySQL的最大連接數,如果服務器的並發連接請求量比較大,建議調高此值,以增加並行連接數量,當然這建立在機器能支撐的情況下,因為如果連接數越多,介於MySQL會為每個連接提供連接緩沖區,就會開銷越多的內存,所以要適當調整該值,不能盲目提高設值。可以過'conn%'通配符查看當前狀態的連接數量,以定奪該值的大小。

#==========================================================================================================================================================================

max_connect_errors = 1000 #對於同一主機,如果有超出該參數值個數的中斷錯誤連接,則該主機將被禁止連接。如需對該主機進行解禁,執行:FLUSH HOST

   

transaction_isolation = READ-COMMITTED #數據庫隔離級別

   

#MySQL在完成某些join(連接)需求的時候,為了減少參與join"被驅動表"的讀取次數以提高性能,需要使用到join buffer來協助完成join操作當join buffer 太小,MySQL不會將該buffer存入磁盤文件而是先將join buffer中的結果與需求join的表進行操作,然后清空join buffer中的數據,繼續將剩余的結果集寫入次buffer

join_buffer_size = 128M

tmp_table_size = 64M

tmpdir = /tmp

#該值設置過小將導致單個記錄超過限制后寫入數據庫失敗,且后續記錄寫入也將失敗

max_allowed_packet = 64M

#mysql在關閉一個交互的連接之前所要等待的秒數

interactive_timeout = 1200

#mysql在關閉一個非交互的連接之前所要等待的秒數

wait_timeout = 600

#MySQL讀入緩沖區的大小

read_buffer_size = 16M

#MySQL的隨機讀緩沖區大小

read_rnd_buffer_size = 8M

#MySQL的順序讀緩沖區大小

sort_buffer_size = 8M

########log settings########

log_error = /data/mysqldata/error.log #根據實際情況填寫路徑

#開啟慢查詢日志

slow_query_log = 1

#超出次設定值的SQL即被記錄到慢查詢日志

long_query_time = 6

slow_query_log_file = /data/mysqldata/slow.log

#表示記錄下沒有使用索引的查詢

log_queries_not_using_indexes = 1

#記錄管理語句

log_slow_admin_statements = 1

#開啟復制從庫復制的慢查詢的日志

log_slow_slave_statements = 1

#設置每分鍾增長的沒有使用索引查詢的日志數量

log_throttle_queries_not_using_indexes = 10

expire_logs_days = 90

min_examined_row_limit = 100

########replication settings########

#master.inforelay.info保存在表中

master_info_repository = TABLE

relay_log_info_repository = TABLE

log_bin = bin.log

#當每進行n次事務提交之后,MySQL將進行一次fsync之類的磁盤同步指令來將binlog_cache中的數據強制寫入磁盤。設置為零是讓系統自行決定

sync_binlog = 5

#開啟全局事務IDGTID能夠保證讓一個從服務器到其他的從服務器那里實現數據復制而且能夠實現數據整合的

gtid_mode = on

#開啟gtid,必須主從全開

enforce_gtid_consistency = 1

#從服務器的更新是否寫入二進制日志

log_slave_updates = 1

#三種模式 STATEMENT(有可能主從數據不一致,日質量小)、ROW(產生大量二進制日志)、MIXED

binlog_format = mixed

#relay-log日志記錄的是從服務器I/O線程將主服務器的二進制日志讀取過來記錄到從服務器本地文件,然后SQL線程會讀取relay-log日志的內容並應用到從服務器

relay_log = /data/mysqldata/relay.log

relay_log_recovery = 1

#開啟簡單gtid,開啟此項會提升mysql執行恢復的性能

binlog_gtid_simple_recovery = 1

slave_skip_errors = ddl_exist_errors

########innodb settings########

#這個參數在一開始初始化時就要加入my.cnf里,如果已經創建了表,再修改,啟動MySQL會報錯。最好為8K

#innodb_page_size = 16K

innodb_page_size = 8K

#數據緩沖區buffer pool大小,建議使用物理內存的 75%

innodb_buffer_pool_size = 2G

#buffer_pool的值較大的時候為1,較小的設置為8

innodb_buffer_pool_instances = 8

#運行時load緩沖池,快速預熱緩沖池,將buffer pool的內容(文件頁的索引)dump到文件中,然后快速loadbuffer pool中。避免了數據庫的預熱過程,提高了應用訪問的性能

innodb_buffer_pool_load_at_startup = 1

#運行時dump緩沖池

innodb_buffer_pool_dump_at_shutdown = 1

#innodb中處理用戶查詢后,其結果在內存空間的緩沖池已經發生變化,但是還未記錄到磁盤。這種頁面稱為臟頁,將臟頁記錄到磁盤的過程稱為刷臟

innodb_lru_scan_depth = 2000

innodb_io_capacity = 4000

innodb_io_capacity_max = 8000

#事務等待獲取資源等待的最長時間,超過這個時間還未分配到資源則會返回應用失敗,默認50s

innodb_lock_wait_timeout = 30

#日志組所在的路徑,默認為datahome目錄;

innodb_log_group_home_dir = /data/mysqldata

#innodb_undo_directory = /data/mysqldata

#這個參數控制着innodb數據文件及redo log的打開、刷寫模式,http://blog.csdn.net/gua___gua/article/details/44916207

#innodb_flush_method = O_DIRECT-不經過系統緩存直接存入磁盤,

innodb_file_format = Barracuda

innodb_file_format_max = Barracuda

innodb_strict_mode = 1

#innodb獨享表空間,有點很多,缺點會導致單個表文件過大

#innodb_file_per_table = 1

#undo日志回滾段默認為128

innodb_undo_logs = 128

#傳統機械硬盤建議使用,而對於固態硬盤可以關閉

#innodb_flush_neighbors = 1

innodb_log_file_size = 1G

innodb_log_buffer_size = 64M

#控制是否使用獨立purge線程

innodb_purge_threads = 1

#改為ON時,允許單列索引最大達到3072。否則最大為767

innodb_large_prefix = 1

innodb_thread_concurrency = 8

#開啟后會將所有的死鎖記錄到error_log

innodb_print_all_deadlocks = 1

innodb_sort_buffer_size = 16M

########semi sync replication settings########

#半同步復制

plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"

loose_rpl_semi_sync_master_enabled = 1

loose_rpl_semi_sync_slave_enabled = 1

loose_rpl_semi_sync_master_timeout = 5000

#表示轉儲每個bp instance LRU上最熱的page的百分比。通過設置該參數可以減少轉儲的page數。

innodb_buffer_pool_dump_pct = 40

#刷臟的進程N-1

innodb_page_cleaners = 4

innodb_undo_log_truncate = 1

innodb_max_undo_log_size = 2G

#控制回收(收縮)undo log的頻率.undo log空間在它的回滾段沒有得到釋放之前不會收縮,

innodb_purge_rseg_truncate_frequency = 128

log_timestamps=system

#該參數基於MySQL5.7 Group Replication組復制的,沒有使用不要設置

#show_compatibility_56=on

#========================================================================

#幾個重要的參數配置和說明

#innodb_log_file_size = 4G :做實驗可以更改的小點,線上環境推薦用4G,以前5.5#5.1等版本之所以官方給的值很小,是因為太大后有bug,現在bug已經修復

#innodb_undo_logs = 128innodb_undo_tablespaces = 3建議在安裝之前就確定好該值,后續修改比較麻煩

#[mysqld][mysqld-5.7]這種tag表明了下面的配置在什么版本下才生效,[mysqld]下均生效

#autocommit,這個參數在5.5.X以后才有,安裝5.6.X的時候要注意先把該參數注釋掉,等安裝完成后,再行打開, 5.7.X#無需預先注釋

#datadir, innodb_log_group_home_dir, innodb_undo_directory一定要注意他的權限是 mysql:mysql

#========================================================================

[root@001 mysql]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata --initialize

初始化完成后需記錄下初始化密碼

[root@001 mysqldata]# grep 'password' /data/mysqldata/error.log #正常情況如上圖,這里因為配置文件指定了日志路徑

5、將mysql的服務腳本放到系統服務中,並配置環境變量讓系統可以直接使用mysql的相關命令

[root@001 mysql]# bin/mysql_ssl_rsa_setup #生成sll密匙可選步驟,詳見:http://www.cnblogs.com/imweihao/p/7199547.html

[root@001 mysql]# cp support-files/mysql.server /etc/init.d/mysqld

[root@test-1 mysql]# ldconfig

[root@001 mysql]# echo "PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh

[root@001 mysql]# source /etc/profile.d/mysql.sh

[root@test-1 mysql]# chkconfig mysqld on

5、啟動並登陸修改密碼

[root@001 mysqldata]# service mysqld start

登陸成功但需修改密碼才可執行其他操作

[root@001 ~]# mysql -uroot -p # 第一次登陸 -p 后面不能直接輸入密碼

Enter password: #填入上面記錄下的密碼

   

mysql> set password ='123456'

到此安裝結束!!!

附上mysql 5.6.36安裝:

http://www.cnblogs.com/imweihao/p/7156754.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM