通過mysql官方的yum源來安裝的mysql-community-server ,這里版本是MySQL 8.0。
wget
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
yum
install
mysql-community-server
service mysqld start
第一次啟動后會有個初始化的過程,會產生root賬戶的隨機密碼。
為了加強安全性,MySQL5.7為root用戶隨機生成了一個密碼,在error_log中,關於error_log的位置,如果安裝的是RPM包,則默認是 /var/log/mysqld.log 。
可以通過 grep 'temporary password' /var/log/mysqld.log 查找密碼:
登陸上過后,進行正常操作會受限,提示你必須修改密碼后才能進行操作。
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
根據提示修改密碼:
mysql> SET PASSWORD = PASSWORD(
'123456'
);
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> SET PASSWORD = PASSWORD(
"root"
);
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
但是提示根據當前密碼策略,設置的密碼不允許。
查閱官方文檔后發現有以下三種密碼策略:
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 |
當前密碼策略默認為1 也就是 MEDIUM,但是當你使用:show VARIABLES like
"%password%"; 來查看當前策略時,發現還是會讓你先修改密碼(這個比較坑)
接下來修改安全策略(跟進實際環境需要,生產環境簡單密碼可能不安全):
set
global validate_password_policy = 0;
以上這條語句是所有人都這么用,好像沒什么毛病,但是到我這兒就不好使啊/cry
比較郁悶
Google、百度了好久也沒結果。咋整?
有了 , 管它呢,先改密碼,設置一個包含大小寫字母、數字和特殊符號的密碼,OK,搞定,然后再來查看安全策略:
show VARIABLES like
"%password%";
妮瑪,怎么下划線變成“.”了???
好吧現在可以根據需要修改安全策略了:
set global validate_password.policy = 0;
validate_password_number_count指定了密碼中數據的長度,
validate_password_special_char_count指定了密碼中特殊字符的長度,
validate_password_mixed_case_count指定了密碼中大小字母的長度。
官方的一些說明:https://dev.mysql.com/doc/refman/8.0/en/validate-password.html
補充--->
關於各種MySQL GUI Client無法連接mysql server,且提示
“Authentication plugin 'caching_sha2_password' cannot be loaded”
這個問題是由於新版本mysql默認啟用caching_sha2_password加密方式,而client無法支持,但是shell是可以連接的。
解決方法:
在/etc/my.cnf文件中添加一行代碼,有可能這行代碼是已存在,但是被注釋掉了
[mysqld]
default_authentication_plugin=mysql_native_password
重啟mysql server,再嘗試連接,如果還是出現同樣的問題,則需要刪除用戶重建,或者新建用戶。