mysql> use mysql;
mysql> selecthost,user from user;
查看结果是不是root用户仅允许本地(localhost)登录,下面这个截图就是这种情况.
是的话,就要修改它的host为%,表示任意IP地址都可以登录.
mysql> update user set host = '%' where user = 'root';
执行完后可能提示error.再mysql> select host,user from user;查看下吧.
root对应的host成了%,表示可以任意IP地址登录了.
mysql> flush privileges;
把缓存flush掉.在使用update语句修改用户记录后,需要FLUSH语句告诉服务器重载授权表.
一、修改密码
mysql -u root -p
update mysql.user set authentication_string = password (“新密码”) where User=”test” and Host=”localhost”;flush privileges;
mysql5.7以后mysql.user表中没有了password字段,而是使用authentication_string来代替。
二、删除用户
mysql -u root -p
Delete FROM mysql.user Where User="用户名" and Host=”localhost”;
flush privileges;
创建用户
命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
删除账户及权限:
drop user 用户名@’%’;
drop user 用户名@ localhost;
三、为用户授权
授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”;
eg: grant all privileges on *.* to 'root'@'192.168.218.128' identified by 'hello' with grant option;
flush privileges; //要刷新权限
授权test用户拥有testDB数据库的所有权限:
grant all privileges on testDB.* to “test”@”localhost” identified by “1234”;
flush privileges; #刷新系统权限表
指定部分权限给用户:
grant select,update on testDB.* to “test”@”localhost” identified by “1234”;
flush privileges; #刷新系统权限表
四、显示当前用户信息
select user();