Centos7升級mysql5.7
阿新 • • 發佈:2018-12-22
-
因為用的是nginx , 所以先關閉nginx : service nginx stop
-
解除安裝Mysql5.6 ,一共有三個包 要解除安裝:
-
(1)先解除安裝mysql-server包 : 執行命令 yum remove mysql mysql-server
(2)再解除安裝mysql-client包 : 執行命令 yum remove msyql-client
(3)最後解除安裝mysql-devel : 執行命令 yum remove msyql-devel
三個包都順利解除安裝完成以後,繼續執行安裝Mysql-5.7的命令
-
安裝Mysql-5.7版本
(1)新增MySQL5.7的YUM源,建議安裝epel源
# yum install epel-release
(2)啟用MySQL5.7源
# yum-config-manager --disable mysql56-community # yum-config-manager --enable mysql57-community-dmr
(3)如果系統裡面沒有yum-config-manage命令,執行如下命令進行安裝。
# yum install yum-utils
(4)執行安裝MySQL5.7
# yum install mysql mysql-devel mysql-server mysql-utilities
(5)初始化密碼,由於我沒有在/root目錄下找到第一次啟動的隨機密碼,我就使用瞭如下操作
# vim /etc/my.cnf 在mysqld欄位中新增 [mysqld] skip-grant-tables 然後執行 # systemctl restart mysqld
此時直接敲mysql進入mysql的終端執行如下命令
#use msyql; update user set authentication_string=password(123456) where user=‘root’ and Host = ‘localhost’; 此時重啟mysql後,註釋掉剛剛新增的那個欄位,systemctl restart mysqld 會告訴你的密碼不符合複雜程度要求,需要再次更改; 然後用123456這個密碼進入mysql終端,在此執行如下命令 SET PASSWORD FOR ‘root’@‘localhost’ = PASSWORD(‘
(6)修改預設字符集為UTF-8
[mysqld] character-set-server=utf8
(7)由於預設的密碼策略要求必須符合複雜程度,這是因為MySQL5.7以後引入了密碼策略外掛
mysql> SHOW VARIABLES LIKE ‘validate_password%’; ±-------------------------------------±-------+ | Variable_name | Value | ±-------------------------------------±-------+ | validate_password_check_user_name | OFF | | validate_password_dictionary_file | | | validate_password_length | 8 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | MEDIUM | | validate_password_special_char_count | 1 | ±-------------------------------------±-------+ mysql> show plugins; | ngram | ACTIVE | FTPARSER | NULL | GPL | | validate_password | ACTIVE | VALIDATE PASSWORD | validate_password.so | GPL | 由於本人使用覺得很不方便,可以在配置檔案中新增如下欄位將其關閉!當然這也做是很不理智的,畢竟安全大於一切! #關閉密碼複雜策略 validate_password=off
(8):完整的MySQL配置優化後的配置檔案如下
[mysqld]
#修改最大連線數
max_connections = 500
#設定預設字符集為utf8
character-set-server=utf8
#查詢排序時緩衝區大小,只對order by和group by起作用,可增大此值為16M
sort_buffer_size = 16M
#查詢快取限制,只有1M以下查詢結果才會被快取,以免結果資料較大把快取池覆蓋
query_cache_limit = 1M
#檢視緩衝區大小,用於快取SELECT查詢結果,下一次有同樣SELECT查詢將直接從快取池返回結果,可適當成倍增加此值
query_cache_size = 16M
#給所有的查詢做cache,代表使用緩衝
query_cache_type = 1
#設定以順序掃描的方式掃描表資料的時候使用緩衝區的大小
read_buffer_size = 8M
#開啟檔案數限制
open_files_limit = 10240
#修改InnoDB為獨立表空間模式,每個資料庫的每個表都會生成一個數據空間
innodb_file_per_table = 1
#索引和資料緩衝區大小,一般設定實體記憶體的60%-70%
innodb_buffer_pool_size = 1G
#緩衝池例項個數,推薦設定4個或8個
innodb_buffer_pool_instances = 8
#2代表只把日誌寫入到系統快取區,再每秒同步到磁碟,效率很高
innodb_flush_log_at_trx_commit = 2
#日誌緩衝區大小,由於日誌最長每秒鐘重新整理一次,所以一般不用超過16M
innodb_log_buffer_size = 8M
#back_log引數的值指出在MySQL暫時停止響應新請求之前的短時間內多少個請求可以被存在堆疊中
back_log = 1024
#thread cache 池中存放的最大連線數
thread_cache_size = 64
#開啟慢查詢日誌
slow_query_log = ON
#關閉密碼複雜策略
validate_password=off
至此,更新就完成了 ,不過 登入mysql時可能會出現如下報錯
‘Table performance_schema.session_variables doesn’t exist’
解決方法如下 :
mysql_upgrade -u root -p --force
然後 重啟mysql即可