登陆代码: mysql -u username -p -h 服务器ip -P 端口号 -D 数据库
出现了没法登陆的bug,can't connnect to MySql server on
复制代码
若是没法链接,多是你的主机没有安装ssh-server(通常系统只默认安装ssh-client);mysql
也多是防火墙把22端口禁用,不必定是网络问题(这一步仅和上一步作对比;linux
若是可以链接,说明网络没有问题,而是你的主机配置问题,而后按如下步骤继续排查) sql
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 网络