在centos6使用yum安裝mysql5.7筆記

在centos6上面使用yum安裝任意版本的mysql,這邊以mysql5.7為例。

大致步驟如下:

  1. 更新yum的repository (yum mysql的來源)
  2. 改變repository裡的來源版本 (預設都是吃latest)
  3. 確認無誤後,用yum直接安裝mysql-community-server
  4. 安裝成功後,做第一次登入並改變密碼
  5. 開啟遠端連線的權限
  6. 修改密碼強度policy,和預設db編碼
  7. 基本安裝完成

1. 透過rpm來更新yum的repository。通常新的MySQL Yum repository會含之前的版本。可以從這邊下載https://dev.mysql.com/downloads/repo/yum/,或使用wget下載。

shell> wget http://dev.mysql.com/get/mysql80-community-release-el6-1.noarch.rpm

這邊之前常常搞混rpm跟yum。rpm是RedHat Package Manager,管理下載(反)安裝已編譯過的軟體(.rpm),但因為部分軟體有相依性,我們這時可以透過yum來幫忙管理這些軟體相依性。而這些軟體各自相依的清單其實就存放在yum repository裡。所以如果我們這邊第一步就是要先透過rpm去安裝mysql的yum repository,之後才是用yum去安裝mysql。

更新yum的repository。 -U (upgrade)參數指如果已經安裝過了則更新,沒有的話則安裝。可以使用 -i (install)只安裝,或是 -F (freshen) 存在則更新。

shell> sudo rpm -Uvh mysql80-community-release-el6-1.noarch.rpm

 

2. 預設repository軟體來源的版本都是latest。筆者當下最新是8.0,而想要灌的版本是5.7,這邊要改一下mysql來源版本。列出所有含mysql的repository,然後檢查當下來源版本,再來切換,之後再檢查一次。

shell> yum repolist all | grep mysql
shell> sudo yum-config-manager --disable mysql80-community
shell> sudo yum-config-manager --enable mysql57-community
shell> yum repolist enabled | grep mysql

mysql yum repository的設定位置存放在 /etc/yum.repos.d/mysql-community.repo,可以vim去看一下是否5.7的版本有正確被enabled。

 

3. 接下來直接使用yum安裝mysql-community-server,並啟動它

shell> sudo yum install mysql-community-server


shell> sudo service mysqld start
shell> sudo service mysqld status


# for EL7 platform, preferred:
shell> sudo systemctl start mysqld.service
shell> sudo systemctl status mysqld.service

 

4. MySQL5.7啟動後會產生一組root預設密碼,先用這組密碼登入

shell> sudo grep 'temporary password' /var/log/mysqld.log
shell> mysql -uroot -p

因為validate_password_policy關係,密碼強度比較嚴苛一些,如果只是自己在家本機在玩或是測試,其實筆者會把這個規則降弱或關掉。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

 

5. 預設root帳戶只允許在本機連線,如果mysql是裝在不同機器上,則需要修改權限讓其他機器也可以連線到本機mysql。

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyNewPass4!' WITH GRANT OPTION;

 

6. 先前提到密碼強度的規則,可以在/etc/my.cnf裡修改。

# validate_password
validate_password_policy=0
validate_password=off

# character_set
character_set_server=utf8
init_connect='SET NAMES utf8'

預設的database character set是latin1,也順便在這邊改一下。當然如果要改sql_mode也可以在這邊改。筆者通常會把ONLY_FULL_GROUP_BY拿掉,但建議還是留著多一道sql檢查比較好。

最後重啟mysql來套用修改。

shell> sudo service mysqld restart

可以透過下面來檢查varaible是否有正確被修改到

mysql> SHOW VARIABLES LIKE 'character%';
mysql> SHOW VARIABLES LIKE 'validate_password%';
mysql> SHOW VARIABLES = 'sql_mode';

7. 最後記得要去設定iptables或firewall-cmd (for centos7)把服務的port打開,然後用軟體連線測試看看是否正常。基本mysql安裝這邊告一個段落。

 

參考:

Leave a Reply

avatar