系統: CentOS 7(在CentOS 7中默認有安裝MariaDB,這個是mysql的分支,一般來說還是使用自己安裝的MySQL比較好)
1、下載並安裝MySQL
wget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
下載到指定位置后,就可以執行安裝了
yum -y install mysql80-community-release-el7-3.noarch.rpm
yum -y install mysql-community-server
安裝完成后,之前的MariaDB就會被覆蓋掉

2、啟動MySQL
啟動MySQL服務:systemctl start mysqld.service
查看MySQL服務:systemctl status mysqld.service

查看MySQL是不是開機自啟,可以執行命令查看開機自啟列表
systemctl list-unit-files|grep enabled
此時如果要進入MySQL得找出root用戶的密碼,輸入命令
grep "password" /var/log/mysqld.log

得到密碼后,登錄mysql,輸入命令
mysql -uroot -p
然后回車,提示你輸入密碼,記得不要輸錯,輸入時密碼是不顯示的。登錄成功如下圖

此時,你需要給你的MySql重新設置密碼,因為MySQL默認的就是必須修改密碼后才能操作數據庫。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Left@zuo123.';
設置密碼的時候需要遵守MySQL密碼設置規范,如果不符合規范是不能修改成功的。
如下圖,我將密碼設置為123456,它提示我 密碼不符合規范

總之呢,我們先將密碼設置成比較復雜的就好,比如 Abc@123...,先登錄了再說。
如果想要設置簡單好記的密碼,可以修改密碼設置規范,畢竟你不登錄你就不能修改規范。
查看密碼規范
SHOW VARIABLES LIKE 'validate_password%';

密碼的長度是由validate_password_length決定的,而validate_password_length的計算公式是: validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count) 這時候我們將密碼設置規范修改一下: set global validate_password.policy=0; set global validate_password.length=1;
這時候就可以設置簡單的密碼了,比如123456

最后一步,設置允許遠程連接。
如果直接使用命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'; 會提示一個語法錯誤,有人說是mysql8的分配權限不能帶密碼隱士創建賬號了,要先創建賬號再設置權限。也有的說8.0.11之后移除了grant 添加用戶的功能。
創建新用戶 admin
創建用戶:CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
允許遠程連接:GRANT ALL ON *.* TO 'admin'@'%';
本人測試過,使用 update user set host = '%' where user = 'root'; 也可以修改

如果使用客戶端連接提示了plugin caching_sha2_password錯誤,這是因為MySQL8.0的密碼策略默認為caching_sha2_password
使用命令修改策略
ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
箭頭指的兩個用戶是我修改過的

然后關閉防火牆,測試連接成功!!
文章為學習記錄,如有錯誤,還望指出!!
