MySQL开启远程连接

  开启MySQL的基本语法是grant授权,这个一般都没有什么问题,主要是开启之后可能还是连接不上

GRANT ALL PRIVILEGES ON 库名.表名 TO 用户名@'IP地址' IDENTIFIED BY '密码' WITH GRANT OPTION;
FLUSH RIVILEGES;
例:
GRANT ALL PRIVILEGES ON *.* TO temp@'%' IDENTIFIED BY 'temp123' WITH GRANT OPTION;

授权所有的服务器使用用户名temp密码temp123来连接所有库的所有表执行增产查改的所有操作

  可能会出现如下的错误提示

  

    确认成功授权之后(具体查看方法在文底),出现如下的问题可能有两种原因,一种是防火墙问题,一种是MySQL配置绑定了本地127.0.0.1。

  一、防火墙问题

   防火墙没有开启3306端口导致连接远程连接不上

 1 开放防火墙端口
 2     添加需要监听的端口
 3     /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
 4 
 5     保存设置
 6     /etc/init.d/iptables save
 7 
 8     查看状态
 9     /etc/init.d/iptables status
10 
11     临时关闭防火墙服务
12     service iptables stop
13 
14     开启防火墙服务
15     service iptables start
16 
17     开机不再启动防火墙服务
18     chkconfig iptables off

 二、绑定本地IP问题

  MySQL绑定了本地127.0.0.1的IP

  这个可以使用命令查看,如下图

  修改my.cnf配置文件在line:43添加#将语句进行注释

  重启MySQL生效

  

  查看授权用户是否创建成功

  授权成功的用户保存在MySQL的mysql库的user表,查看表的数据

use mysql;
select Host,User from userG;

Host % 表示是所有服务器

127.0.0.1,localhost是本地服务器。

还可以通过 select * 查看其它具体的权限包括增删改查等权限。

原文地址:https://www.cnblogs.com/IT--Loding/p/6918098.html