1介绍
1: mysql 默认会自带一些库和表 上图就是配置用户和是否能远程连接
2:真实情况,一般root用户只能本机访问,其他用户可以远程
3:创建的用户一般只有某几个库的 全部权限(开发人员) 或 查询权限(测试人员)
2 用户
2.1 创建用户,远程连接
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;
2.2 修改密码
查看是否能 重置密码(不报错就可以)
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';
2.3 授权
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;