CentOS 7中安裝Mysql 5.7的注意事項

這幾天因爲作項目須要,要使用MySQL數據庫,使用的是MySQL Community Server 5.7.20,在Windows環境下安裝沒有遇到問題,可是在最新的CentOS 7.4環境下安裝時遇到了一些問題,如今把這些問題整理成注意事項公佈出來,以供後來者安裝時借鑑。html

1)安裝前須要卸載CentOS 7自帶的mariadb數據庫。mysql

   CentOS從7開始,從自帶的yum源中取消了MySQL,改成默認安裝MySQL分支mariadb,若是想安裝MySQL官方版本,能夠卸載mariadb數據庫。方法是先執行rpm -qa|grep mariadb,對於全部出現的rpm包都執行rpm卸載。sql

2)在/etc/yum.repos.d目錄下建立MySQL yum安裝所需的Repo文件mysql-community.repo數據庫

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

這裏有兩點要注意bash

1.若是本機沒有安裝gpg密鑰,gpgcheck設置爲0,gpgkey一行註釋掉。服務器

2.在CentOS 7上安裝MySQL 5.7,community/el後面的版本號必須改成7,官網的例子是el/6,這是針對CentOS 6版本。若是不這麼改,在安裝MySQL Community Server必須的安裝包時,會安裝錯對應的版本,而致使後續安裝由於找不到對應包而沒法安裝,這一點必須注意,MySQL官網的指南沒有說清楚,值得吐槽。tcp

3)在執行安裝前最好執行指令ide

yum update

更新全部可能的依賴包。工具

4)安裝MySQL Community Server只須要執行url

yum install -y mysql-community-server

便可,安裝過程當中會自動安裝依賴的包,例如mysql-community-common等。

5)安裝完成後執行

systemctl status mysqld.service

 檢查MySQL是否啓動

系統顯示服務狀態是inactive,沒有啓動,執行

systemctl start mysqld.service

執行完後再運行systemctl status mysqld.service查看mysql運行狀態

6)重置root用戶密碼

從MySQL 5.7後,第一次啓動MySQL,會生成root用戶的隨機密碼,能夠執行如下命令查看

grep 'temporary password' /var/log/mysqld.log

這個密碼是臨時密碼,必須修改成正式密碼,不然使用這個密碼登陸MySQL Server後,執行任何命令,都會顯示如下錯誤

咱們能夠執行如下命令,修改root用戶密碼

alter user user() identified by 'admin';

可是會顯示如下錯誤

這是由於MySQL默認使用的validate_password_policy是MEDIUM的緣故,MySQL的官網介紹validate_password_policy有如下三種:

Policy Tests Performed
0 or LOW Length //只檢查密碼長度
1 or MEDIUM

Length; numeric, lowercase/uppercase, and special characters //檢查密碼長度,是否包含數字,大小寫字母,特殊字符

2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file //檢查密碼長度,是否包含數字,大小寫字母,特殊字符,以及是否包含字典文件

引用地址

https://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html#sysvar_validate_password_policy

MySQL安裝後默認的validate_password_policy爲MEDIUM,咱們從新設置的密碼不符合這個policy的要求,因此命令執行失敗。

若是要修改密碼成功,咱們須要修改validate_password_policy爲0

set global validate_password_policy=0;

默認的validate_password_length是8,咱們能夠修改成5

set global validate_password_length=5;

完成這兩步後咱們能夠修改root用戶的密碼爲admin,命令和前面同樣。

7)容許遠程主機訪問

在MySQL服務器主機上使用root用戶登陸MySQL後,切換到mysql數據庫,再執行如下命令

運行完後重啓MySQL服務

systemctl restart mysqld.service

再在防火牆上打開3306端口,重啓firewalld服務

firewall-cmd --permanent --add-port=3306/tcp
systemctl restart firewalld.service

以後可使用MySQL客戶端工具或者應用程序從遠程訪問MySQL服務器了。

相關文章
相關標籤/搜索