1、修改用户密码
旧版本:
update mysql.user set password=password('123456') where user='itcast';
新版本:
ALTER USER 'itcast'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@123456';
2、添加用户和授权
2.1. 创建新用户:
create user 'username'@'host' identified by 'password';
其中username为自定义的用户名;host为登录域名,host为'%'时表示为 任意IP,为localhost时表示本机,或者填写指定的IP地址;paasword为密码
2.2. 为用户授权:
grant all privileges on *.* to 'username'@'%' with grant option;
其中*.*第一个*表示所有数据库,第二个*表示所有数据表,如果不想授权全部那就把对应的*写成相应数据库或者数据表;username为指定的用户;%为该用户登录的域名
2.3. 授权之后刷新权限:
flush privileges;
2.4.撤销授权
#收回权限(不包含赋权权限)
REVOKE ALL PRIVILEGES ON *.* FROM user_name;
REVOKE ALL PRIVILEGES ON user_name.* FROM user_name;
#收回赋权权限
REVOKE GRANT OPTION ON *.* FROM user_name;
#操作完后重新刷新权限
flush privileges;
3、mysql设置了read_only为什么还能修改数据
- read_only对拥有super和connection_admin这两个权限的用户无效。
回收CONNECTION_ADMIN权限(似乎无效)
revoke CONNECTION_ADMIN on *.* from scott;
- 尽量用库名.*去赋权,而非*.(有效)
grant all privileges on db01.* to 'username'@'%' with grant option;