MySQL-远程连接

现象

MySQL默认是只允许本地服务器访问,所以在远程访问MySQL时,会出现连接被拒的情况。

解决方案

  1. 使用grant语句添加新用户,并设置用户权限

    1
    2
    -- 添加一个用户admin并授权可从任何其它主机发起的访问(通配符%),访问密码为"something"
    grant all privileges on *.* to admin@"%" identified by 'password' with grant option;
  2. 刷新权限

    1
    flush privileges;
  3. 查看用户是否添加成功

    1
    select user,host from mysql.user

    如果有刚才添加的用户名,则证明添加成功。

  4. 修改绑定ip的默认配置

    • 注释mysql配置文件中bind-address一项或是配置成为某ip(一旦配置了,就只能该ip主机才能访问mysql服务器), 很多文章介绍这个配置在 /etc/mysql/my.cnf 里(可能是mysql版本问题)但是我在该文件下并没有发现有bind-address配置,以至于走了很多弯路,后来发现这个配置在 /etc/mysql/mysql.conf.d/mysql.cnf里。
    • 修改bind-address = 127.0.0.1bind-address = 0.0.0.0