就是user表host字段为IP或者%的账户;
2.在系统防火墙中把3306端口打开;
这样远程就可以访问mysql了
首先让我们看一下远端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'
mysqlselect
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.*
toduan@localhostidentified
by
"123456"
现在该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,连接成功了。祝贺一下!!!注意事项:一重启MYSQL服务。
二:Linux防火墙一定要开放3306端口。
三:我用mysql5.0做实验,完全没有问题,但是mysql4.0好像有点问题。我们可以用duan用户在任何IP上登录数据库源码天空
,应为我们duan用户的host字段是“%”。但是我只要一换IP,就无法连接mysql了。不知道是mysql版本的问题,还是我输入命令的时候有误。此问题需要进一步的证实。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)