1. 程式人生 > >Centos7安裝mysql8教程

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種選擇:

  1. 把密碼改複雜點,讓它符合密碼驗證策略,這個當然是最好的,符合國際慣例;
  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:

 

 

 

 

 

這樣就可以了哦。大功告成!