操作:
- 登录到mysql服务端,指令为mysql -h localhost -u root -p,然后输入密码
- 创建远程登陆用户并授权,指令如下:
grant all PRIVILEGES on *.* to 'root'@'192.168.0.129' identified by '111111' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
如果没有上面的语句执行后没有立即生效,可以尝试以下命令:
flush privileges
指令解读:
- grant: 赋权命令
- all PRIVILEGES: 所有权限
- .: 前面一个代表数据库,后面一个代表数据表,例如我想给d数据库下面的t表,就用d.t;这里*.*代表所有数据库下面所有表
- ‘root’@‘192.168.0.129’:
表示允许root这个数据库用户在192.168.0.129这个IP进行远程访问;若想使所有ip都能访问可以使用"%";即’root’@’%’ - identified by ‘111111’: 表示登录密码为111111
- WITH GRANT OPTION:权限传递,使用这个子句时将允许用户将其权限分配给他人(这里指ip)
- flush privileges
命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。
转载自:mysql远程访问