登陸代碼: mysql -u username -p -h 服務器ip -P 端口號 -D 數據庫
出現了沒法登陸的bug,can't connnect to MySql server on
複製代碼
若是沒法鏈接,多是你的主機沒有安裝ssh-server(通常系統只默認安裝ssh-client);mysql
也多是防火牆把22端口禁用,不必定是網絡問題(這一步僅和上一步作對比;linux
若是可以鏈接,說明網絡沒有問題,而是你的主機配置問題,而後按如下步驟繼續排查) sql
我這裏22端口和3306端口均不能訪問,可是ip地址是能夠ping通的。我本身設置的27252端口爲ssh端口改爲22端口爲登陸端口了1) netstat -ntpl | grep 3306
tcp 0 0 127.0.0.1:3306 127.0.0.1:* LISTEN -
2) netstat -ntpl | grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
複製代碼
注意:3306端口ip顯示爲127.0.0.1表示這個地址只能被本機訪問數據庫
檢查my.cnf的配置,bind-address=addr能夠配置綁定ip地址。
不配置或者IP配置爲0.0.0.0,表示監聽全部客戶端鏈接。
複製代碼
注意(我踩了這個坑):mysql 5.7的目錄改爲了/etc/mysql/mysql.conf.d/mysqld.cnf 而非以前的 /etc/mysql/mycnfubuntu
進入mysql數據庫vim
$mysql -u root -p
>use mysql;
>select host,user from user;
複製代碼
MySQL建用戶的時候會指定一個host,默認是127.0.0.1/localhost只能本機訪問; 其它機器用這個用戶賬號訪問會提示沒有權限,host改成%,表示容許全部機器訪問。centos
— ubuntu下使用ufw工具 sudo ufw status 查看防火牆狀態,在ubuntu下iptables通常被ufw接管,而selinux是默認不安裝的,若是你曾經安裝過,就須要禁用seliux並重啓系統了。 sudo ufw enable/disable 啓用和禁用防火牆 sudo ufw allow 3306 容許訪問3306端口bash
— 如下是centos等系統的作法:服務器
blog.csdn.net/AIkiller/ar… blog.csdn.net/ynnmnm/arti… stackoverflow.com/questions/16161889/cant-connect-to-remote-mysql-server-with-error-61 網絡