Mysql添加用户、修改权限,修改登录权限ip
列出所有用户
SELECT User, Host, Password FROM mysql.user;
执行上步命令报错
== ** 执行后报错 ERROR 1054(42S22) Unknown column ‘password’ in ‘field list’ ** ==
** 错误的原因是 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string**
- 所以请使用以下命令:
-
SELECT User, Host, authentication_string FROM mysql.user;
增加一个用户
- 以下创建为测试用户
- 用户:maxwell
- 密码为 123456
- 让它可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。
- 首先用以 root 用户连入 MySQL,然后输入以下命令
创建用户
rant all privileges on *.* to maxwell@localhost identified by '123456';
刷新权限
flush privileges;
如果你不想 maxwell 有密码操作数据库“mydb”里的数据表,可以输入以下命令让此消失
grant select,insert,update,delete on mydb.* to maxwell@localhost identified by '';
修改用户密码
UPDATE user SET Password = PASSWORD('***新的密码****') WHERE user = 'maxwell';
--刷新权限--
FLUSH PRIVILEGES;
在丢失root密码的时候,可以这样
mysqld_safe --skip-grant-tables&
mysql -u root mysql
UPDATE user SET password=PASSWORD("***新的密码****") WHERE user='maxwell';
FLUSH PRIVILEGES;
修改用户权限,所有用户都可以登录
- 自此你的帐号不允许从远程登陆,只能在localhost。
- 这个时候只要在localhost的那台电脑,登入mysql后,
- 更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从"localhost"改称"%"
GRANT ALL PRIVILEGES ON *.* TO 'maxwell'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
刷新权限
flush privileges;
查看所有配置权限
SELECT User, Host, Password FROM mysql.user;