root密码丢失问题处理
针对 MySQL 数据库root密码丢失的问题,可以通过添加 --skip-grant-tables 参数来跳过权限表。
MySQL 登录忘记 root 密码
强制停库,通过命令查看 MySQL 进程号,然后 kill -9 进程号
ps -ef | grep mysql
加跳过权限表参数,重启 MySQL 数据库。这样不输入密码,也可以登录数据库
./mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables &
直接使用 mysql 命令登录数据库,执行以下操作修改密码
use mysql;
update user set password=password('root123') where user='root';
flush privileges;
MySQL 5.7 之后,库下的 password 字段用 authentication_string 字段代替
use mysql;
update user set authentication_string=password('root123') where user='root';
flush privileges;
密码重置完成后,重启 MySQL 数据库,输入新密码可以正常进入数据库了。
用户权限管理
MySQL数据库中的用户一般分为超管权限用户 root 和那些由 root 用户创建的普通用户,它们的权限由 root 用户分配。
查看 MySQL 5.6 数据库中用户的情况:
查看 MySQL 5.7 数据库中用户的情况:
创建普通用户的语法:
create user 用户名@主机ip identified by '密码'
创建数据库并为数据库创建一个只读用户和读写用户
只读用户:
create database test;
create user 'test_user'@'192.168.96.131' identified by 'test123';
grant select on test.* to 'test_user'@'192.168.96.131' identified by 'test123';
flush privileges;
读写用户:
create user 'test_user2'@'192.168.96.131' identified by 'test123';
grant select,insert,update,delete on test.* to 'test_user2'@'192.168.96.131' identified by 'test123';
flush privileges;