打开MySQL数据库远程访问的权限
- 格式:doc
- 大小:27.00 KB
- 文档页数:2
打开MySQL数据库远程访问的权限
在我们使用mysql数据库时,有时我们的程序与数据库不在同一机器上,这时我们需要远程访
问数据库。缺省状态下,mysql的用户没有远程访问的权限。下面介绍两种方法,解决这一问
题。
1、改表法
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,
登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称
"%"
mysql -u root -p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2、授权法
在安装mysql的机器上运行:
1、d:\mysql\bin\>mysql -h localhost -u root
//这样应该可以进入MySQL服务器
2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION
//赋予任何主机访问数据的权限
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WI
TH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用
mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY
'mypassword' WITH GRANT OPTION;
3、mysql>FLUSH PRIVILEGES
//修改生效
4、mysql>EXIT
退出MySQL服务器,这样就可以在其它任何的主机上以root身份登录
MySQL默认是没有开启远程访问控制的。
一、创建远程访问用户账号
用root用户登陆,然后:
1. grant all privileges on *.* to 创建的用户名 @'%'identified by "密码";
2. flush privileges; //必须刷新上面创建的用户授权,否则无效
格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码";
说明:
@ 后面是访问mysql的客户端IP地址(或是主机名)
% 代表任意的客户端,如果填写 localhost 为本地访问。
例:
grant all privileges on *.* to mirze@'%' identified by '123456';
flush privileges;
二、为现有的用户设置是否具有远程访问权限:
1. use mysql;
2. update user set host = '%' where user = '用户名';
3. flush privileges;