mysql5.7 設置遠程訪問


mysql5.7設置遠程訪問不是和網上說的一樣建個用戶賦個權限就可以訪問的。比如下邊這個就是建用戶賦權限,可能在之前的版本可以,但是我在我的mysql上一直不行。為此煩了好久!!!項目都耽誤了!!

一、原來設置遠程訪問的方式

Mysql默認是不可以通過遠程機器訪問的,通過下面的配置可以開啟遠程訪問 

在MySQL Server端: 

執行mysql 命令進入mysql 命令模式, 

Sql代碼 
  1. mysql> use mysql;   
  2. mysql> GRANT ALL ON *.* TO user@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;   

#這句話的意思 ,允許任何IP地址(上面的 % 就是這個意思)的電腦 用admin帳戶  和密碼(admin)來訪問這個MySQL Server   

#必須加類似這樣的帳戶,才可以遠程登陸。 root帳戶是無法遠程登陸的,只可以本地登陸  

遠程訪問:

  1. mysql -h172.21.5.29 -uuser -p123456  即可了
  2. //172.21.5.29就是MySQL Server的IP地址,user就是剛才在 172.21.5.29上設置的遠程訪問帳戶

  另外你也可以在一個機器上模擬遠程訪問,就是多開幾個終端,方便測試是否可以遠程訪問。

 
我發現一個問題, 如果上面的命令你執行完畢, 你在 本地就是localhost , 執行 :
  1. mysql -hlocalhost -uadmin -padmin   

結果是失敗的。 
原來 上面的 % 竟然不包括localhost 

所以你還必須加上這樣的 命令:
mysql>GRANT ALL ON *.* TO admin@'localhost'  IDENTIFIED BY 'admin' WITH GRANT OPTION; 

二、mysql5.7中設置遠程訪問

我在按照上邊的方法設置后,發現用mysql -h 並不能遠程訪問,修改了/etc/my.cnf配置文件把

#skip-networking 注釋掉
加上bind-address=0.0.0.0

然而並沒有卵用!

看得我都快背下來了!

后來我直接去看他的配置文件:在/etc/mysql文件夾下

點開圖中的my.cnf:  有下面一些話:

#
# * IMPORTANT: Additional settings that can override those from this file!

# 其他地方的配置可以覆蓋此文件的配置
# The files must end with '.cnf', otherwise they'll be ignored.  
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

文件最后的兩個路徑我很好奇,就去看了下:conf.d/:

里邊一個配置文件,打開發現,就一個[mysql],然后啥都沒有。

再看另一個:

也有一個配置文件,打開發現有驚喜,就在這里邊有一句話:

瞬間有種見到天日的感覺!!!看它的注釋就明白,只能本地連接,問題出在這!!

把bind-address注釋掉:#bind-address=...

重啟mysql服務,遠程鏈接:

  1. mysql -h172.17.0.1 -uuser -p

//我的用戶名是:user

終於進去了,哈哈!!

為了這個折騰了兩天!!!我是服氣mysql的!!

 


免責聲明!

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



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