環境:unbuntu 16.04mysql
最新版本的Mysql在遠程鏈接的配置上與老版本有了一些出入,照原先的配置已經不行了,因此在這裏記錄一下遇到的全部新問題。sql
配置遠程鏈接的步驟以下:ubuntu
進入Mysql,而後輸入以下的語句:網絡
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
上面的%能夠改爲一個具體的IP地址,這樣就只容許這個IP訪問了。阿里雲
上面的配置是不夠的。Mysql默認只監聽127.0.0.1這個IP地址。因此須要更改/etc/mysql/mysql.conf.d/mysqld.cnf
文件。 裏面有一個bind-address=127.0.0.01
,改爲:rest
bind-address=0.0.0.0
重啓mysql: service mysql restart
經過netstat -ant |grep mysql
來查看是否監聽的IP地址變化了。code
經過iptables -L -n
查看是否防火牆有限制。通常新版的ubuntu系統已經不安裝iptables模塊了。不過仍是看一眼比較好。ip
通過上面的配置你就能夠經過 mysql -uroot -p -P3306 -h<mysql_host_ip>
來鏈接了。可是若是你是使用虛擬機,例如阿里雲的虛擬機,那麼你還須要配置虛擬機的網絡。由於虛擬機的IP地址並非公網IP地址,而是有一個端口映射。進入雲控制檯,修改虛擬機的網絡來配置一個端口鏡像,讓虛擬機的私有IP地址+3306端口映射到公網IP地址+3306上。虛擬機
若是上述方法仍是沒法鏈接,那你須要經過telnet ipaddress 3306來看一下是否能鏈接上。table
@完