mysql默认是没有开启远程控制的,必须添加远程访问的用户。
如果是安装版的话,从mysql提供的控制台进入。
用root用户登陆,然后:
grant all privileges on *.* to 创建的用户名 @"%" identified by "密码";
flush privileges; * 刷新刚才的内容*
格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码";
@ 后面是访问mysql的客户端IP地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为本地访问(那此用户就不能远程访问该mysql数据库了)。
同时也可以为现有的用户设置是否具有远程访问权限。如下:
use mysql;
update db set host = '%' where user = '用户名'; (如果写成 host=localhost 那此用户就不具有远程访问权限)
FLUSH PRIVILEGES;
查看结果,执行:
use mysql;
select host,user,password from user;
+--------------+--------+---------------+
| Host | User | Password |
+--------------+--------+-----------------+
| localhost | | |
| % | John | 123456 |
| localhost | root | |
+--------------+------ --+---------------+
总结:
其实MySQL默认有两个数据库分别为 mysql 和 test 而MySQL用户的信息都放在数据库 mysql 的相关表中
也可以使用 Navicat (推荐)这样的GUI工具来管理用户。
update user set host='%' where host='localhost'
工作中用到web服务器和mysql服务器不在同一台计算机上安装的运用。需要通过mysql的远程账户访问mysql。
先上语法:
grant [权限] on [数据库名].[表命] to ['用户命']@['web服务器的ip地址'] identified by ['密码'];