mysql数据库忘记密码了,尝试了几遍都密码错误,于是决定干脆新建一个用户来使用吧。
1.找的mysql的配置文件
MySQL的配置文件通常位于以下位置之一:
- /etc/my.cnf /etc/mysql/my.cnf
- /etc/mysql/mysql.conf.d/mysql.cnf
- /etc/mysql/conf.d/mysql.cnf
很巧,我的配置文件就在/etc/my.cnf 里面
2.编辑my.cnf文件,新增skip-grant-tables参数
sudo vi /etc/my.cnf
在[mysqld]下面新增skip-grant-tables参数,绕过权限登录
:wq 保存退出
3.重启mysql服务,使设置生效
sudo systemctl restart mysqld
这时候,使用 mysql -u root 登录,可以无密码登录成功啦~
登录之后,我们来新建用户:
mysql>CREATE USER ‘mysqluser’@‘%’ IDENTIFIED BY ‘password’;
这里的mysqluser 和 password 替换为你的用户名和密码,%表示该用户可以任意主机登录,如果你想让该用户只能在本地登录,那你可以把%换为localhost
当你按下确定键的时候,可能会有一个报错提示:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
这时候你需要使用 FLUSH PRIVILEGES:刷新权限,就行啦
mysql>FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
之后重新运行新增用户操作:
新增用户:
mysql>CREATE USER ‘mysqluser’@‘%’ IDENTIFIED BY ‘password’;
mysql>GRANT ALL PRIVILEGES ON . TO ‘mysqluser’@‘%’ WITH GRANT OPTION;
- ALL PRIVILEGES 表示授予所有权限。
- ON . 表示对所有数据库和表授予权限。
- WITH GRANT OPTION允许该用户将权限授予其他用户.
mysql>FLUSH PRIVILEGES;
刷新权限,立即生效
新用户建完之后,记得去配置文件里面把skip-grant-tables参数注释掉噢,不然可是很危险的。。。