MySQL 在Linux下的远程连接

一. 基本设置

  • 通过下面命令,可以查看当前系统中的host和user:SELECT host,user  FROM mysql.user;
  • host要有远程登陆的客户端的IP,或者%表示所有IP。而user则是对应该IP能用的用户。
  • grant all privileges on *.* to 'root'@'%' identified by 'password';
    flush privileges;
  • 通过上述命令完成:
    ①第一个*表示允许访问的数据库名称,第二个*表示允许访问的表名称。如果都*,表示所有。
    ②root代表远程登录使用的用户名,可以自定义
    ③%代表允许任意ip登录,如果你想指定特定的IP,可以把%替换掉就可以了
    ④password代表远程登录时使用的密码,可以自定义
    ⑤flush privileges; 这是让权限立即生效
  • service mysql restart

二. 可能遇到的问题

  • 可能会遇到 ERROR 2003,大多数情况下是服务器设置问题。
  • 如果ping 192.168.1.130 服务器IP可以ping通。但通过telnet 192.168.1.130 3306 失败,说明是服务器设置问题。

1. 可访问的IP地址被绑定了

  • 输入命令:netstat -apn | grep 3306 
    如果看到:127.0.0.1:3306 则是这种情况
  • 在配置文件中的[mysqld]字段下,看是否有 :bind-address    = 127.0.0.1。如果有则说明被绑定到本地地址,仅对本地IP监听3306端口,自然远程的就无法连接上。
  • 这时候可以改成:bind-address    = 0.0.0.0 。即对所有IP地址监听。

2. 可能防火墙阻止了3306端口

如果上面设置成功还是不行,再考虑防火墙的问题,修改下防火墙规则,允许3306端口的访问。

三. 远程连接

  • mysql -h 服务器ip地址 -P 3306 -u root -p

猜你喜欢

转载自blog.csdn.net/weixin_39731083/article/details/82184102