我已经多次安装并重新安装了 Mysql,但是程序总是拒绝我访问,并说:
错误 1045(28000):拒绝用户“root”@“localhost”访问(使用密码:是)
即使我使用真实密码,也无法进入 Mysql。有什么建议吗?我认为 Grants 存在问题,但我无法看到它们,因为它们在 Mysql 中。
答案1
如果您从 Ubuntu 存储库安装了 mySQL,则无法像往常一样进行 root 用户身份验证mysql -u root -p
。
相反,您必须输入sudo mysql
,终端将提示您输入 sudo 密码。
这应该可以解决您的问题并允许您连接 mySQL。
我最近遇到了同样的问题,我更喜欢使用通常的mysql -u root -p
方法(也更容易配置一些工具,例如 mySQL Workbench、DBeaver...)。以下是我完成此操作所遵循的步骤:
连接到 mySQL
sudo mysql
创建管理员帐户
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
您可以在此处停止并使用管理员用户代替 root。他们基本上具有相同的访问权限。
如果您希望返回 root 用户,请按照以下步骤操作:退出 root 连接并使用新的管理员帐户重新连接:
quit; /* mySQL will tell you "Bye" */
mysql -u admin -p
删除 root 用户
drop user root@localhost;
使用通常的身份验证方法重新创建 root 用户
CREATE USER 'root'@'localhost' IDENTIFIED BY 'the_password_you_wish_here';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
然后断开连接,重新用root连接并删除admin账户
quit; /* mySQL will tell you "Bye" */
mysql -u root -p
drop user admin@localhost;
现在你可以连接到mysql -u root -p
答案2
尝试一步一步地首先从您的机器中删除 mysql,然后安装它,
sudo apt-get install mysql-server
您将要求设置密码。
sudo apt-get remove --purge mysql && sudo apt-get purge mysql && sudo apt-get autoremove && sudo apt-get autoclean && sudo apt-get remove dbconfig-mysql && sudo apt-get dist-upgrade && sudo apt-get install mysql-server