您可以使用init文件.查看有关如何重置Root密码的MySQL官方文档(包括备用解决方案的注释).
所以基本上在使用init文件,你可以添加你需要固定的接入任何SQL查询(如GRAND
,CREATE
,FLUSH PRIVILEGES
,等)进入init文件(任何文件).
这是我恢复root帐户的示例:
echo "CREATE USER 'root'@'localhost' IDENTIFIED BY 'root';" > your_init_file.sql echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;" >> your_init_file.sql echo "FLUSH PRIVILEGES;" >> your_init_file.sql
在您创建文件后,您可以运行:
killall mysqld mysqld_safe --init-file=$PWD/your_init_file.sql
然后检查这是否有效,按,然后Ctrl+Z键入:bg
从前台运行进程到后台,然后通过以下方式验证您的访问权限:
mysql -u root -proot mysql> show grants; +-------------------------------------------------------------------------------------------------------------+ | Grants for root@localhost | +-------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' |
也可以看看:
没有密码 - 没有任何问题 MySQL
错误#28331:由于重复键导致CREATE USER失败时出现错误消息