现在的位置: 首页 > 综合 > 正文

MySQL远程连接

2014年03月23日 ⁄ 综合 ⁄ 共 1330字 ⁄ 字号 评论关闭

 

8月5日

如何用MySQL-Front远程连接MySql

大多的MySQL都是装在Linux上的,而我们的本机上一般都会装MySQL-Front.那如何用MySQL-Front连接远端Linux系统上的mysql呢?

用MySQL-Front连接远端的MYSQL就会有些问题。大多提示1045错误:"Access denied for user duan@192.168.0.104,请检查用户名和口令".怎么回事呢?

首先让我们看一下远端MYSQL的用户表

mysql> select host,user
-> from user;
+---------------+------+
| host | user |
+---------------+------+
| localhost | root |
+---------------+------+
5 rows in set (0.00 sec)

由此我们可以看到root用户仅允许本地(localhost)登录,如果要远程登录该mysql服务器的话,就需要新建一个普通权限的用户,新建用户使用如下命令:

mysql> grant select,update,insert,delete on mas.* to duan@localhost identified by "123456";

这句命令的意思是:新建用户duan,并且只允许该用户在本地(localhost)登录,密码是123456,并且赋予它对mas库中所有表 select,update,insert的权限。我们在这有一个mas库,所以用mas.*代表mas库下的所有表。如果要对所有的表,包括mysql 库的表都有操作权限则可以替换成“*.*”.

现在该duan用户,已经可以登录mysql了,但是也还是只能本地登录。若要duan用户可以远程登录mysql,则还需要如下命令:

mysql> update user set host = '%' where user = 'duan';

现在我们再查看mysql的管理库:

mysql> select host,user
-> from user;
+-----------+------+
| host | user |
+-----------+------+
| % | duan |
| localhost | root |
+-----------+------+
5 rows in set (0.00 sec)

通过以上操作,我们知道其实用root用户也可以远程登录mysql的,就是把root的host字段改成%即可,但是强烈不建议如此做,否则会带来严重的安全风险。

好了,我们可以连接我们的远端mysql了,在MySQL-Front上新建连接,输入连接名,远端的Linux的IP地址,输入用户名duan和密码123456,选择连接端口,mysql默认的是3306,OK,连接成功了。祝贺一下!!!

注意事项:

一:Linux防火墙一定要开放3306端口。

二:我用mysql5.0做实验,完全没有问题,但是mysql4.0好像有点问题。我们可以用duan用户在任何IP上登录数据库,应为我们duan用户的host字段是“%”。但是我只要一换IP,就无法连接mysql了。不知道是mysql版本的问题,还是我输入命令的时候有误。此问题需要进一步的证实。

抱歉!评论已关闭.