行业知识
MySQL创建只读用户
2026-11-07 19:04:52
来源:互联网转载
两种方法都可以进行创建:
第一种:客户端操作
-- 首先查看mysql中所有的用户SELECT user,host FROM mysql.user;-- 查看指定用户的权限情况SELECT * FROM mysql.user WHERE user='root'-- 查看当前用户(自己)权限show grants;-- 查看其他 MySQL 用户权限show grants for dba@localhost;-- 修改指定用户密码update user set password=password('new_password') where user='hail' and host='localhost';-- 1.创建一个用户CREATE USER 'name'@'%' IDENTIFIED BY 'password';-- 解释: name:是创建的名字 %:表示将其与任何主机关联 password:密码自行设置-- 2.给用户赋予只读权限GRANT SELECT ON post.post_data TO 'name'@'%'; GRANT [权限] ON [库.表] TO [用户名]@[IP] IDENTIFIED BY [密码]-- 3.MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户-- 以下是 grant 普通数据用户,查询、插入、更新、删除 以及所有权限,数据库中所有表数据的权利。grant select on testdb.* to common_user@’%’ grant insert on testdb.* to common_user@’%’grant update on testdb.* to common_user@’%’grant delete on testdb.* to common_user@’%’-- 赋予某用户 库的所有表的只读权限GRANT SELECT ON Entry_volume.* TO 'postuser'@'%'; -- 赋予某用户 所有库的所有表的只读权限 GRANT SELECT ON *.* TO 'postuser'@'%'; -- 4.刷新权限FLUSH PRIVILEGES;-- 5.删除账户及权限drop user 用户名@’%’drop user 用户名@localhost 第二种:是Linux上登陆mysql的root账号 mysql -uroot -p
输入密码 进入之后就和客户端的操作一致
可能出现的问题:
再给用户赋予表权限的时候可能出现一下问题:
解决方案:
第一:报错可能是因为mysql数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的,通过错误提示里的’’@'localhost’可以看出来。
解决方法:删除mysql数据库user表里用户名为空的用户。
第二:可能是权限不够
-- 更新权限:UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
第三:可以在pycharm中进行修改
-- MySQL服务的 启动:service mysqld start-- MySQL服务的停止service mysqld stop-- MySQL的重启service mysqld restart