有朋友可能会碰到使用navicat for mysql 远程连接 mysql数据库会提示10061、1045错误或 2003-can’t connect to mysql on ’192.168.1.2’(10061),这个原因是因为mysql不准许远程连接。
最简单的办法是
mysql远程配置
代码如下 复制代码
grant all privileges on *.* to root@'%' identified by 'your paaa'; %表示多有机器。
打开3306端口,为防火墙设置例外,放行3306.
但你必须有root权限了,
还可以如下方法修改:
1:在服务端mysql文件夹下找到my.ini文件。修改bind-address=127.0.0.1 为 bind-address=0.0.0.0 (在mysql 5的my.ini中未发现此项)
2:重新启动mysql服务。
测试连接情况:
如果没有给远程登录用户添加所有机器都能访问的权限,将会出现“1045- denied for user root@it(using password:no)”,这表明需要添加权限;
添加命令如下:
代码如下 复制代码
1)grant all on *.* to 用户名@% identified by 密码;
2)flush privileges;
完成以上步骤,就可以远程访问mysql了。
如果上面办法不能解决我们可以开启mysql远程访问权限 允许远程连接
1、登陆mysql
代码如下 复制代码
mysql -u root -p
查看user表
代码如下 复制代码
mysql> use mysql;
database changed
mysql> host,user,password from user;
+--------------+------+-------------------------------------------+
| host | user | password |
+--------------+------+-------------------------------------------+
| localhost | root | *a731aebfb621e354cd41baf207d884a609e81f5e |
| 192.168.1.1 | root | *a731aebfb621e354cd41baf207d884a609e81f5e |
+--------------+------+-------------------------------------------+
2 rows in set (0.00 sec)
可以看到在user表中已创建的root用户。host字段表示登录的主机,其值可以用ip,也可用主机名,
(1)有时想用本地ip登录,那么可以将以上的host值改为自己的ip即可。
2、实现远程连接(授权法)
将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,建议在开发时设为%。
update user set host = ’%’ where user = ’root’;
将权限改为all privileges
代码如下 复制代码
mysql> use mysql;
database changed
mysql> grant all privileges on *.* to root@'%' identified by root;
query ok, 0 rows affected (0.00 sec)
mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host | user | password |
+--------------+------+-------------------------------------------+
| localhost | root | *a731aebfb621e354cd41baf207d884a609e81f5e |
| 192.168.1.1 | root | *a731aebfb621e354cd41baf207d884a609e81f5e |
| % | root | *a731aebfb621e354cd41baf207d884a609e81f5e |
+--------------+------+-------------------------------------------+
3 rows in set (0.00 sec)
这样机器就可以以用户名root远程访问该机器上的mysql.
3、实现远程连接(改表法)
代码如下 复制代码
use mysql;
update user set host = '%' where user = 'root';
这样在远端就可以通过root用户访问mysql
