centOS7 上面安裝mysql8以上並且配置外網訪問


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對密碼復雜度有一定的要求(新版本允許修改規則),默認密碼規則如下:

  1. 長度不得小於8位
  2. 必須包含至少一個數字,一個小寫字母,一個大寫字母和一個特殊字符

 

如果命令有用,但是出現密碼不符合規范,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。
然后就可以在客戶端中測試一下鏈接是否正常了。

需要注意的幾個問題

  1. 上面的GRANT語句可能和之前的版本不同,網上其他人寫的舊的教程中這個語句不太適合用在MySQL8中。引用中有最新的官網文檔可以拿來參考

  2. 有些系統會因為服務器防火牆導致即使配置成功,也無法遠程鏈接MySQL。如果無法鏈接,可以先暫時關閉防火牆測試一下是否時因為防火牆的原因(不同版本的Centos系統防火牆配置可能不一樣,具體可能需要另查資料)
    防火牆命令:
    [root@virde ~]# service firewalld stop
    或者
    [root@virde ~]# systemctl stop firewalld.service

  3. 如果使用navicat連接出現1251的錯誤,說明是密碼的解析不對,低版本的navicat使用的密碼加密方式和mysql8的加密方式不對,所以會出現錯誤,這時候有兩種方法,一種是將navicat版本升高到能夠支持的地步,另一種方式是修改mysql8中的加密方式,使得兩者對口;
    1. 我使用第二種方式:命令如下:  
       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

             https://www.cnblogs.com/virde/p/centos-mysql8-install.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM