1: mysql 默认会自带一些库和表 上图就是配置用户和是否能远程连接
2:真实情况,一般root用户只能本机访问,其他用户可以远程
3:创建的用户一般只有某几个库的 全部权限(开发人员) 或 查询权限(测试人员)
root用户登录mysql
mysql -uroot -p
降低密码强度(不建议使用)
- SELECT @@VALIDATE_PASSWORD_POLICY;
- set global validate_password_policy = 0;
- set global validate_password_length=1;
-
创建用户张三 密码 123456 只能本地登录访问 localhost本地
create user 'zhangsan'@'localhost' identified by '123456';
创建用户张三 密码 123456 可以远程访问 %远程 ,但是本机访问不了
create user 'zhangsan'@'%' identified by '123456';
更新用户是否能远程连接
- #展示所有库
- show databases;
-
- # 进入mysql数据库(系统自带的)
- use mysql;
-
- #查询用户和地址
- select user,host from user;
-
- # %为任意访问地址 ,修改用户和地址
- update user set host = '%' where user = 'root';
-
- update user set host = 'localhost' where user = 'root';
-
-
- # 刷新权限 权限更新后刷新才会起作用
- flush privileges;
刷新一下,要不不起作用
flush privileges;
查看是否能 重置密码(不报错就可以)
SHOW variables LIKE 'validate_password%';
要是报错 退出客户端 修改配置文件
exit
要是报错 配置文件
vim /etc/my.cnf
要是报错 [mysqld] 下 增加这两行配置 解决(1820问题)
- [mysqld]
-
- #添加密码验证插件
- plugin-load-add=validate_password.so
-
- #服务器在启动时加载插件,并防止在服务器运行时删除插件
- validate-password=FORCE_PLUS_PERMANENT
重启mysql
systemctl restart mysqld
root 设置新的密码为123456
alter user 'root'@'localhost' identified by '123456';
grant :赠送 privileges:特权
—— all //所有权限
—— usage //无权限
—— select,update,insert //个别权限
—— select,update (字段1, ... ,字段N) //指定字段
—— *.* //所有库所有表
—— 库名.* //一个库
—— 库名.表名 //一张表
—— % //所有主机,(本机除外)
—— 192.168.233.% //网段内的所有主机
—— 192.168.233.1 //1台主机
—— localhost //数据库服务器本机
查询root 用户的权限信息:
SHOW GRANTS FOR 'root';
用户可以有多个权限,用最大权限,所以一定也要删除某些权限
删除某个权限 GRANT变 revoke , TO 变 from
- 赋予最大权限 和root一样了
- GRANT ALL PRIVILEGES ON *.* TO 'zhangsan'@'%'
- 删除上面的权限
- revoke ALL PRIVILEGES ON *.* FROM 'zhangsan'@'%';
最大权限和root一样 (这俩都是) 赠送 所有特权 所有库 所有表 到用户张三上 并且 能远程
grant ALL ON *.* TO 'zhangsan'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'zhangsan'@'%'
只允许本地 (本机访问 且 只能对库名 叫 “ku”的数据库下 所有表 所有权限)
grant all privileges on ku.* to 'zhangsan'@'localhost';
允许远程 (远程访问 且 只能对库名 叫 “ku”的数据库下 所有表 所有权限)
- grant all privileges on ku.* to 'zhangsan'@'%';
- grant all privileges on 库名.表名 to '用户名'@'IP地址';
细粒度对 库名为 "ku" 的权限 增删改查
grant select, insert, update, delete on ku.* to 'zhangsan'@'%';
刷新
flush privileges;