CentOS 7 下安裝 MySQL 5.7(移除mariadb)

從 CentOS 7 系統開始,MariaDB 成爲 yum 源中默認的數據庫安裝包。在 CentOS 7 及以上的系統中使用 yum 安裝 MySQL 包將無法使用 MySQL。本文件介紹如何移除mariadb相關,並安裝 MySQL 5.7.21 。
1、檢查 MariaDB 是否安裝

yum list installed | grep mariadb

2、卸載全部 MariaDB 相關

yum -y remove mariadb*

3、下載 MySQL 的 YUM 源

進入到要下載到的路徑:cd /usr/local/src

下載:wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

4、安裝 MySQL 的 YUM 源

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

5、檢查 MySQL 的 YUM 源是否安裝成功

yum repolist enabled | grep "mysql.*-community.*"

如圖所示則安裝成功。

6、查看 MySQL 版本

yum repolist all | grep mysql

7、安裝 MySQL

yum install mysql-community-server

一直輸 y 就可以了。

8、啓動 MySQL 服務

systemctl start mysqld

9、測試連接 MySQL 服務

mysql -u root 或者 mysql

--------------------------------------------------------------------------------

提示:

剛安裝的 MySQL 是沒有密碼的,這時如果出現:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO),解決如下:

① 停止 MySQL 服務:systemctl stop mysqld 

② 以不檢查權限的方式啓動 MySQL: mysqld --user=root --skip-grant-tables &

③ 再次輸入 mysql -u root 或者 mysql,這次就可以進來了。

④ 更新密碼:

MySQL 5.7 以下版本:UPDATE mysql.user SET Password=PASSWORD('123456') where USER='root';

MySQL 5.7 版本:UPDATE mysql.user SET authentication_string=PASSWORD('123456') where USER='root';

⑤ 刷新:flush privileges;

⑥ 退出:exit;

設置完之後,輸入 mysql -u root -p,這時輸入剛設置的密碼,就可以登進數據庫了。

--------------------------------------------------------------------------------

10、防火牆設置

遠程訪問 MySQL,需要開放 3306 端口:

firewall-cmd --permanent --zone=public --add-port=3306/tcp

firewall-cmd --permanent --zone=public --add-port=3306/udp

firewall-cmd --reload

如果是 CentOS 7,需要將 MySQL 服務加入防火牆,然後重啓防火牆:

firewall-cmd --zone=public --permanent --add-service=mysql

systemctl restart firewalld

--------------------------------------------------------------------------------

提示:

在輸入 firewall-cmd --permanent --zone=public --add-port=3306/tcp 時可能會報 'FirewallD is not running',是說防火牆本身就沒有打開,解決方法:

① 查看防火牆狀態:systemctl status firewalld,會發現狀態是 dead,即防火牆未開啓。

② 打開防火牆:systemctl start firewalld

③ 再次查看防火牆狀態:systemctl status firewalld,這時會發現狀態變爲 running,即防火牆開啓成功。

這時再輸入開放 3306 端口的命令就沒有問題了。

--------------------------------------------------------------------------------

11、設置允許遠程訪問

默認情況下 MySQL 是不允許遠程連接的,所以在 Java 項目或者 MySQLWorkbench 等數據庫連接工具連接服務器上的 MySQL 服務的時候會報 "Host 'x.x.x.x' is not allowed to connect to this MySQL server"。可以通過下面的設置解決。詳細可以參考之前寫的一篇文章 XXX is not allowed to connect to this MySQL server。

① grant all privileges on *.* to root@"%" identified by '0';

② flush privileges;

--------------------------------------------------------------------------------

提示:

在執行第一條命令的時候,可能會報:

'ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.' 需要讓我們重置密碼。原因是因爲我剛剛的命令中設置的數據庫密碼是0,這個密碼過於簡單,不符合 MySQL 的安全要求。只要重新設置一個複雜點的密碼就可以了:

mysql> SET PASSWORD = PASSWORD('xxx');   //xxx 是重置的新的複雜的密碼

--------------------------------------------------------------------------------

思考:

之前設置簡單密碼是沒有問題的,可能原因:

① 可能目前環境是 CentOS 7 + MySQL 5.7.21,安全性有所提升。

② 也有可能是之前的數據庫設置過

mysql> set global validate_password_policy=0;

mysql> set global validate_password_length=1;

允許設置簡單密碼。
12、相關命令

MySQL 相關:

systemctl start mysqld    #啓動mysql

systemctl stop mysqld    #停止mysqld

systemctl restart mysqld    #重啓mysqld

systemctl enable mysqld    #設置開機啓動

systemctl status mysqld    #查看 MySQL Server 狀態

防火牆相關:

systemctl status firewalld    #查看防火牆狀態

systemctl start firewalld    #打開防火牆

systemctl stop firewalld    #關閉防火牆

systemctl restart firewalld    #重啓防火牆
 

本文轉載自https://blog.csdn.net/u011886447/article/details/79796802,用作記錄以備日後用到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章