1)服务已停止
sudo /etc/init.d/mysqld stop
2)以安全模式启动
sudo mysqld_safe --skip-grant-tables &
3)用户创建
mysql -u root
4)设置密码
UPDATE user SET Password=PASSWORD('my_password') where USER='root';
从mysql控制台退出,然后重新启动服务并尝试使用以下命令访问mysql控制台
mysql -u root -p my_password
[vikram@VoltyLinux ~]$ mysql -u root -p
Enter password: *******
错误1045(28000):用户'root'@'localhost'的访问被拒绝(使用密码:是)
与之前在第2步中进行的操作相同,即以安全模式重启mysql守护进程。
发出命令
select user,host,password from mysql.user where user='root';
将输出剪切并粘贴到文本编辑器中,以便在进行以下操作之前和之后进行比较(比较散列的密码列值)。
对于每一行,请注意该host
列。在下面的示例中,我假设我有两行。一行%
作为主机,下一行作为主机localhost
对于具有host
变化的每一行,您将发出一个命令。因此,在上面的示例中,我总共将发出2条命令,例如:
SET PASSWORD FOR 'root'@'%' = PASSWORD('MyNewPassword');
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
跑步
select user,host,password from mysql.user where user='root';
剪切并粘贴到文本编辑器中。请注意密码哈希的更改。
从安全模式关闭守护程序,然后正常重启。
尝试使用MyNewPassword作为root登录
这里有一些链接。一个用于SET PASSWORD语法,另一个通常用于GRANT语法。
对于此问题的狭窄范围(即登录),不需要授予。但是,如果没有适当的数据库授权,除了简单的命令(例如,select now();
我不建议您更改密码后,您的root用户不具有特权。对于普通用户来说,必须授予该赠款。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句