我在本地的Windows系统上运行mysql 5.x,使用mysql administrator,我无法连接到使用根帐户创建的数据库。我得到的错误是:
MySQL错误号1045访问被拒绝
对于用户“root”@“localhost”(使用
密码:是)
我不记得更改了根帐户凭据,但我知道我试图通过添加IP让局域网上的其他计算机访问数据库。我为其中一个IP所做的一件事是指定对帐户'root'的访问,而不是root,也就是说,我用单引号字符包围了根目录。全部使用mysql administrator。这就是为什么我不能使用root登录的原因吗?
此外,是否有创建新帐户或重置根帐户的方法?如前所述,我可以完全访问我的邮箱。
看到这些问题
How to change MySQL root password to default?
How do I retrieve my MySQL username and password?
How do I change the password of the root user in MySQL?

最佳答案

您可以使用init文件。查看mysql官方文档(包括其他解决方案的注释)。
因此,基本上使用init文件,可以将修复访问所需的任何SQL查询(如GRANDCREATEFLUSH PRIVILEGES等)添加到init文件(任何文件)中。
以下是恢复根帐户的示例:

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' |

另请参见:
How to Reset the Root Password每件事mysql
No Password – No Problem

08-04 17:20