【MYSQL】mysql用户与权限管理
1. 用户连接mysql服务器
mysql认证用户依据有3个参数:
-
你从哪里来:host 你是谁:user 你的密码是多少:password
# 连接数据库 mysql -h192.168.8.102 -uroot -p123456; # 查看当前登录用户 SELECT user(); # 通过库名mysql里的user表来查看有哪些用户可以登录 USE mysql; DESC user; SELECT host,user,password FROM user; # 修改host域,指定IP能连接起来 UPDATE user SET host=192.168.8.101 WHERE host=::1; FLUSH PRIVILEGES; # 冲刷权限 # 修改用户密码 UPDATE user SET password=password(123456) WHERE host=192.168.8.101; FLUSH PRIVILEGES; # 冲刷权限
2. 创建、授权和回收用户
用户常用权限all,creat,drop,insert,update,delete,select ……
# 创建一个新用户,注:如果是8.0版本以上,默认使用caching_sha2_password,有些客户端可能不支持 CREATE USER krislin@% IDENTIFIED WITH mysql_native_password BY 123456; # 为新用户授权库.表 GRANT ALL ON *.* TO krislin@%; FLUSH PRIVILEGES; # 冲刷权限 # 新建一个用户并授权 GRANT [权限1, 权限2......] ON 数据库名.该库下的表名 TO 用户名@主机名 IDENTIFIED BY 密码; # 示例: # 授权给主机为192.168.8.n局域网内的用户root所有数据库权限 GRANT ALL ON *.* TO root@192.168.8.% IDENTIFIED BY 123456; FLUSH PRIVILEGES; # 冲刷权限 # 针对某个库做授权 GRANT ALL ON test.* TO root@192.168.8.%; FLUSH PRIVILEGES; # 冲刷权限 # 针对某个表授权 GRANT select,update,insert ON test.goods TO root@192.168.8.%; FLUSH PRIVILEGES; # 冲刷权限 # 收回用户权限 REVOKE [权限1, 权限2 ......] ON 数据库名.该库下的表名 FROM 用户名@主机名; # 示例: # 收回某用户的所有权限 REVOKE ALL ON *.* FROM root@192.168.8.%;
3. 跳过mysql认证登录方法
有时候忘记mysql帐号密码或修改了主机ip使得无法登录mysql, 解决办法:
# (1) 关闭mysql服务 /etc/init.d/mysql stop # (2) 启动mysql服务时添加跳过权限检测 /usr/local/mysql/bin/mysqld --skip-grant-tables # (3) 在新的终端登录mysql修改数据库mysql下user表的host、user、name列 /usr/local/mysql/bin/mysql > use mysql; > select host,user,password from user; > update user set host=ip地址,user=用户名 password=password(你的密码) where 定位那一行; # 最后重启mysql服务。
下一篇:
mysql设置忽略表名大小写