mysql默认只允许本地连接,也就是说,在安装完mysql后会存在两个root账户,他们的host分别是localhost和127.0.0.1
use mysql; update user set host='%' where user='root' flush privileges;
补充:通过上面设置后,发现登录不了,会出现
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
这里不知道是不是因为设置了host='%'之后,没有给设置密码,导致登录不了,后面我给赋予指定密码
update user set password=PASSWORD('123456') where host='%' and user='root';
password应该都是经过加密的,设置密码的时候要使用password函数,如password('dacheng')
grant all privileges on yhb.* to root@localhost identified by '123456';
赋予本地以root登录权限,可以操作数据库yhb,但是发现看不了mysql数据库。那是因为上面语句只是针对yhb数据库,如果想有对mysql这个数据库权限,则执行
grant all privileges on mysql.* to root@localhost identified by '123456';
然后再对表给予相应的操作
grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码";
例如:
grant all privileges on testDB.* to root@***-vuldb.localhost identified by '123456';
至此,远程配置完成,终于没有问题了,之前因为权限的问题弄了好久,还重装了几次。
做个小推广:程序员经常久坐,颈椎毛病比较多,特别推荐ventry颈椎保健枕