mysql5.7設置遠程訪問不是和網上說的同樣建個用戶賦個權限就能夠訪問的。好比下邊這個就是建用戶賦權限,可能在以前的版本能夠,可是我在個人mysql上一直不行。爲此煩了很久!!!項目都耽誤了!!html
1、原來設置遠程訪問的方式
Mysql默認是不能夠經過遠程機器訪問的,經過下面的配置能夠開啓遠程訪問
在MySQL Server端:
執行mysql 命令進入mysql 命令模式,
mysql
- mysql> use mysql;
- mysql> GRANT ALL ON *.* TO user@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
#這句話的意思 ,容許任何IP地址(上面的 % 就是這個意思)的電腦 用admin賬戶 和密碼(admin)來訪問這個MySQL Server sql
#必須加相似這樣的賬戶,才能夠遠程登錄。 root賬戶是沒法遠程登錄的,只能夠本地登錄 ide
遠程訪問:
- mysql -h172.21.5.29 -uuser -p123456 便可了
- //172.21.5.29就是MySQL Server的IP地址,user就是剛纔在 172.21.5.29上設置的遠程訪問賬戶
另外你也能夠在一個機器上模擬遠程訪問,就是多開幾個終端,方便測試是否能夠遠程訪問。post
- mysql -hlocalhost -uadmin -padmin
結果是失敗的。
原來 上面的 % 居然不包括localhost
因此你還必須加上這樣的 命令:
mysql>GRANT ALL ON *.* TO admin@'localhost' IDENTIFIED BY 'admin' WITH GRANT OPTION; 測試
2、mysql5.7中設置遠程訪問
我在按照上邊的方法設置後,發現用mysql -h 並不能遠程訪問,修改了/etc/my.cnf配置文件把this
#skip-networking 註釋掉
加上bind-address=0.0.0.0url
然而並無卵用!spa
看得我都快背下來了!3d
後來我直接去看他的配置文件:在/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服務,遠程連接:
- mysql -h172.17.0.1 -uuser -p
//個人用戶名是:user
終於進去了,哈哈!!
爲了這個折騰了兩天!!!我是服氣mysql的!!