背景
在CentOS7系統中,默認安裝有MariaDB(MySQL的分支),但有時候,我們還是要在系統中安裝自己的MySQL(現在也可以通過docker安裝mysql),安裝完成之後,會直接覆蓋掉MariaDB。
安裝步驟
1. 下載MySQL官方的Yum Repository(Mysql5.7)
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
2. 安裝Yum Repository
yum -y install mysql57-community-release-el7-10.noarch.rpm
3. Yum安裝MySQL
yum -y install mysql-community-server
如圖所示,則表示安裝成功了(可以看到,已經覆蓋掉了系統中的mariadb)
數據庫設置
1. 啓動MySQL,執行命令:
systemctl start mysqld.service
2. 查看MySQL運行狀態,執行命令,運行狀態如下圖:
systemctl status mysqld.service
此刻,MySQL已經開始正常運行了
3. 但是,想進入MySQL之前,還得先找出此時root用戶的密碼,執行下面命令可以在日誌文件中,找到初始密碼:
grep "password" /var/log/mysqld.log
4. 如下命令進入數據庫(回車後會提示輸入密碼):
mysql -uroot -p
輸入初始密碼,此時不能做任何事情,因爲MySQL默認必須修改密碼之後才能操作數據庫:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
這裏有個問題,新密碼設置的時候如果設置的過於簡單會報錯,如下圖:
原因是:因爲MySQL有密碼設置的規範,具體是與validate_password_policy的值有關:
修改密碼成功後,可以查看MySQL完整的初始密碼規則,如下命令查看:
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 |
+--------------------------------------+--------+
7 rows in set (0.01 sec)
密碼的長度是由validate_password_length決定的,而validate_password_length的計算公式是:
validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
解決方法就是修改密碼爲規範複雜的密碼,如:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'z?guwrBhH7p>';
Query OK, 0 rows affected (0.00 sec)
如果我們想要修改密碼規則,則執行下面sql就可以了:
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
設置成功後,此時密碼就可以設置爲簡單的密碼了,例如:123456
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
到此,數據庫的密碼設置就完成了。
配置優化
1. 因爲安裝了Yum Repository,以後每次yum操作都會自動更新,所以把這個卸載掉:
yum -y remove mysql57-community-release-el7-10.noarch
2. 操作完成上面的,現在還不能用可視化的客戶端進行連接(如Navicat),需要進行授權(登錄進入數據庫):
mysql> grant all on *.* to root@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
其他資料
- Docker系列 ~ 在Centos系統中安裝docker(一)
- Docker系列~安裝MySQL(五)
- 【踩坑】如何強制更改Docker容器中的Mysql密碼(忘記密碼)
- 【總結+踩坑】MySQL導出導入用法/最大連接數以及其他常見問題
參考資料
至此,全部介紹就結束了
-------------------------------
-------------------------------
關於我(個人域名)
期望和大家一起學習,一起成長,共勉,O(∩_∩)O謝謝
歡迎交流問題,可加個人QQ 469580884,
或者,加我的羣號 751925591,一起探討交流問題
不講虛的,只做實幹家
Talk is cheap,show me the code