1.首先要下載mysql:
wget -i -c https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
使用上面的命令下載安裝用的yum(相當於下載器),接下來就是要安裝mysql
yum -y install mysql80-community-release-el7-3.noarch.rpm
再就是安裝mysql服務器了
yum -y install mysql-community-server
這個可能要很多時間,需要耐心等待,我當初安裝的時候光着一步就花了2個小時
2.mysql服務器的配置
啟動mysql:
systemctl start mysqld.service
查看運行狀態
systemctl status mysqld.service

此時mysql已經可以正常運行,不過想要進入里面,需要從日志文件中獲取到初始密碼:
grep "password" /var/log/mysqld.log

接着就可以登錄數據庫了
mysql -uroot -p
執行以上命令后輸入密碼,就是初始密碼,輸入的密碼是看不見的
進入數據庫后不能夠進行任何操作,因為要修改密碼后才能操作
先退出mysql
quit
接着使用一下命令來修改密碼:
mysqladmin -uroot -p'oldpassword' password 'newpasswrod'
注意:MySQL對密碼復雜度有一定的要求(新版本允許修改規則),默認密碼規則如下:
- 長度不得小於8位
- 必須包含至少一個數字,一個小寫字母,一個大寫字母和一個特殊字符
如果命令有用,但是出現密碼不符合規范,ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。
上面的命令對於mysql8來說可以生效,就是密碼的規范需要注意。
如果想設置簡單的密碼,可以先登錄mysql中,使用一下幾條命令修改一下:
MySQL 8.0 執行代碼:
mysql> set global validate_password_policy=0;
ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'
mysql> set global validate_password_length=1;
ERROR 1193 (HY000): Unknown system variable 'validate_password_length'
問題解決
1、分析: 可以看到,修改 policy 和 length 的值,在MySQL5.7中好使,在MySQL8.0中無效。'validate_password_policy' 變量不存在。
2、解決: 先修改一個滿足的密碼 (如:Root_12root)
3、密碼修改后,可用命令查看 validate_password 密碼驗證插件是否安裝。
mysql> SHOW VARIABLES LIKE 'validate_password%';

4、MySQL 8.0 調整密碼驗證規則:
mysql> set global validate_password.policy=0;
mysql> set global validate_password.length=1;
來自:https://www.cnblogs.com/zgxblog/p/10708182.html
再退出到linux的shell,使用命令來修改密碼
如果這一條命令沒用,
可以推薦:
1.先登錄mysql
使用命令(先使用databse):
use mysql;
再使用:
ALTER USER 'root'@'localhost' IDENTIFIED BY'你的密碼';
如果這條命令還是沒用,請到別的網頁上進行查找,推薦網址:https://m.php.cn/manual/view/33947.html
此時密碼就可以設置的很簡單,例如1234之類的。到此數據庫的密碼設置就完成了。
接着設置外網訪問:
- 執行以下命令進行修改
mysql> use mysql;
mysql> update user set host="%" where user='root'; mysql> GRANT ALL ON *.* TO 'root'@'%'; mysql> flush privileges;
執行完之后用exit命令退出shell客戶端,重啟MySQL。
然后就可以在客戶端中測試一下鏈接是否正常了。
需要注意的幾個問題
-
上面的GRANT語句可能和之前的版本不同,網上其他人寫的舊的教程中這個語句不太適合用在MySQL8中。引用中有最新的官網文檔可以拿來參考
-
有些系統會因為服務器防火牆導致即使配置成功,也無法遠程鏈接MySQL。如果無法鏈接,可以先暫時關閉防火牆測試一下是否時因為防火牆的原因(不同版本的Centos系統防火牆配置可能不一樣,具體可能需要另查資料)
防火牆命令:
[root@virde ~]# service firewalld stop
或者
[root@virde ~]# systemctl stop firewalld.service - 如果使用navicat連接出現1251的錯誤,說明是密碼的解析不對,低版本的navicat使用的密碼加密方式和mysql8的加密方式不對,所以會出現錯誤,這時候有兩種方法,一種是將navicat版本升高到能夠支持的地步,另一種方式是修改mysql8中的加密方式,使得兩者對口;
- 我使用第二種方式:命令如下:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY'newPassword';
親測有效。
- 我使用第二種方式:命令如下:
命令完成后再去連接試試。
但此時還有一個問題,就是因為安裝了Yum Repository,以后每次yum操作都會自動更新,需要把這個卸載掉:
yum -y remove mysql57-community-release-el7-10.noarch
參考幾個高質量的安裝文章:https://www.cnblogs.com/funbin/p/11154784.html
