在localhost中,我错误地点击了phpmyadmin的“root”用户的“lock”选项,然后我得到了“mysqli::真实的_connect():(HY 000/4151)的规定:访问被拒绝,此帐户被锁定”的问题,而试图再次连接“localhost/phpmyadmin”!我该如何解决这个问题?谢谢我试过在“config.inc.php”文件中更改“user”“password”“hostname”,但是没有效果!如何解决这个问题?
41ik7eoe1#
如果您在Mac或Linux变体上运行MySQL,根据哪个帐户被锁定,您可能仍然可以使用sudo mysql连接。如果是这样,您可以运行UPDATE查询(向下)来解锁root帐户。您需要运行FLUSH PRIVILEGES;或重新启动MySQL服务以使更改生效。如果这样做不起作用,或者您使用的是Windows,则可以使用skip-grant-tables在禁用身份验证的情况下启动服务。相关配置文件的位置因版本和操作系统而异。Windows上MySQL 8.0配置文件的典型位置-
sudo mysql
FLUSH PRIVILEGES;
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
许多Linux变体上的MySQL将检查-
/etc/my.cnf
如果它不存在,请检查Linux变体的典型位置。在mysqld部分添加skip-grant-tables选项-
mysqld
skip-grant-tables
[mysqld] skip-grant-tables
现在您需要重新启动MySQL服务-
# On Windows (cmd as admin) net stop MYSQL80 net start MYSQL80 # or PowerShell as admin Restart-Service -Name MYSQL80 # On Linux sudo service mysql restart
现在,您应该能够连接到MySQL,而不需要凭据,并且可以使用--execute或-e直接传入UPDATE查询。
--execute
-e
mysql -e "UPDATE `mysql`.`user` SET `account_locked` = 'N' WHERE `User` = 'root';"
现在,您可以撤消上面所做的配置更改,并重新启动MySQL服务。
1条答案
按热度按时间41ik7eoe1#
如果您在Mac或Linux变体上运行MySQL,根据哪个帐户被锁定,您可能仍然可以使用
sudo mysql
连接。如果是这样,您可以运行UPDATE查询(向下)来解锁root帐户。您需要运行FLUSH PRIVILEGES;
或重新启动MySQL服务以使更改生效。如果这样做不起作用,或者您使用的是Windows,则可以使用skip-grant-tables在禁用身份验证的情况下启动服务。相关配置文件的位置因版本和操作系统而异。
Windows上MySQL 8.0配置文件的典型位置-
许多Linux变体上的MySQL将检查-
如果它不存在,请检查Linux变体的典型位置。在
mysqld
部分添加skip-grant-tables
选项-现在您需要重新启动MySQL服务-
现在,您应该能够连接到MySQL,而不需要凭据,并且可以使用
--execute
或-e
直接传入UPDATE查询。现在,您可以撤消上面所做的配置更改,并重新启动MySQL服务。