CentOS7 下使用YUM安裝 MySQL5.7


    於2015年10月19日(美國時間),Oracle公司發布了開源數據庫MySQL的最新版本5.7。到現在已有將近3年之久,經過這幾年的改進,MySQL5.7性能最高可達前一個版本的3倍,現在官網的最新版本是5.7.18.在這里,我將介紹yum的安裝MySQL5.7的方法。

      1:添加MySQL5.7的YUM源,建議安裝epel源

# yum install epel-release

           根據CentOS版本的不同,添加rpm的地址也有所不同

                     Centos6.5    

# yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

      CentOS7

# yum install https://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

      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的終端執行如下命令
update mysql.user set authentication_string=password(123456) where user='root' and Host = 'localhost';
#此時重啟mysql后,注釋掉剛剛添加的那個字段,systemctl restart mysqld  會告訴你的密碼不符合復雜程度要求,需要再次更改;
#然后用123456這個密碼進入mysql終端,在此執行如下命令
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234@Mfg');
FLUSH PRIVILEGES;
#之后用新的密碼登錄即可~~~

      6:修改默認字符集為UTF-8

#由於現在大家都使用UTF-8作為默認字符集,因此需要在mysqld中添加如下字段
[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

   9:發現一部分人使用yum安裝后,再使用配置文件中指定datadir 和 basedir,導致啟動失敗,這里制定后還需要修改啟動文件,還需要給制定的目錄賦予mysql賬號的權限;這里yum安裝后datadir 和basedir的位置如下代碼所示:

mysql> show variables like '%datadir%';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| datadir       | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.00 sec)

mysql> show variables like '%basedir%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| basedir       | /usr/ |
+---------------+-------+
1 row in set (0.00 sec)

 

 

PS:補充說明

由於本人當時比較愚鈍,沒有找到安裝完成后的臨時密碼,后面發下在/var/log/mysqld.log文件中

[root@iZ8vbdzsluhqdi7xr4r99wZ ~]# grep "A temporary password"  /var/log/mysqld.log
2017-07-11T08:52:22.386970Z 1 [Note] A temporary password is generated for root@localhost: qc&Urn5>kUT&

 


免責聲明!

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



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