Centos7安裝mysql8教程
網上的教程很多,我也參考了很多,以下是我實踐的步驟,真實有效。
1.配置Mysql 8.0安裝源:
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
2.安裝Mysql 8.0
sudo yum --enablerepo=mysql80-community install mysql-community-server
以下都選y
看到complete就是安裝完啦,是不是很簡單?
3.啟動mysql服務
安裝完的第一件事當然是啟動mysql服務啦
sudo service mysqld start
這樣就算啟動完了哦,不信?看下執行狀態:
service mysqld status
嗯,沒騙你吧。。。
4.檢視root臨時密碼:
安裝完mysql之後,會生成一個臨時的密碼讓root使用者登入,那麼臨時密碼在哪裡看呢?
輸入以下命令就可以啦:
grep "A temporary password" /var/log/mysqld.log
我去,好複雜。。。
5.更改臨時密碼:
這個密碼估計也只有外星人能記得住了,作為地球人,第一件事就是改成我自己容易記得密碼啦。
先用臨時密碼登入mysql
輸入:mysql -uroot -p
在Enter password:後面輸入密碼,注意輸入密碼的時候是看不到的喲,別擔心,直管輸完回車就行。
恭喜你,這樣就是登入成功了。
先在我們要改密碼了喲:
輸入:ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
這裡的new password要改成你自己的密碼喲,我想把密碼改成root,所以我輸入:ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
哎喲,提示密碼不滿足密碼驗證策略,也是,密碼太簡單了呢。
好吧,現在有2種選擇:
- 把密碼改複雜點,讓它符合密碼驗證策略,這個當然是最好的,符合國際慣例;
- 把密碼驗證策略改簡單點,讓它適用簡單的密碼,這個符合懶人的做法。
額,作為一個上進的人,那我就選擇2吧。
那我們先看看當前的密碼驗證策略是怎麼樣的吧。
輸入:SHOW VARIABLES LIKE 'validate_password.%';
我去,重置密碼之前還不讓看。。。直接看官方文件吧:
validate_password.length
是密碼的最小長度,預設是8,我們把它改成4
set global validate_password.length=4;
validate_password.policy
驗證密碼的複雜程度,我們把它改成0
set global validate_password.policy=0;
validate_password.check_user_name
使用者名稱檢查,使用者名稱和密碼不能相同,我們也把它去掉
set global validate_password.check_user_name=off;
現在再執行修改密碼的命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
成功了,密碼設成了root,但是我建議大家還是設個複雜點密碼,不要這麼懶哦。
6.配置遠端訪問
用mysql客戶連線報不允許連線的錯誤,那是因為沒開通遠端訪問的許可權哦。
百度上基本說執行
GRANT ALL ON *.* TO 'root'@'%'; 就行了,但是一不下心報了個錯:
看下預設MySQL使用者:
use mysql;
select host, user, authentication_string, plugin from user;
發現root的host是localhost,不是%哦,那我們就加個host是%的root賬號:
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
再查下使用者
select host, user, authentication_string, plugin from user;
可以看到已經新增了host為%的root使用者
然後再執行:
GRANT ALL ON *.* TO 'root'@'%';
成功了耶,嘿嘿。
連線成功:
7.navicat連線mysql
用navicat連線mysql還是會報錯:
原因是mysql8的加密方式規則不一樣,是caching_sha2_password
把加密方式改成mysql_native_password就行了:
ALTER USER '[使用者名稱]'@'%' IDENTIFIED WITH mysql_native_password BY '[密碼]';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
加密方式以及改成了mysql_native_password:
這樣就可以了哦。大功告成!