提问人:Aravind Shankar 提问时间:6/5/2023 更新时间:6/5/2023 访问量:43
MySQL 访问被拒绝 root @ localhost
MySQL Access denied for root @ localhost
问:
我可以在 StackOverflow 中看到很多解决这个问题的解决方案。我无法找到解决问题的确切方法。这是我尝试过的事情。
我正在使用 mysql Ver 8.0.32-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu))
最初我的问题是我无法登录mysql,因为我忘记了root密码
所以我停止了mysql服务
sudo service mysql stop
启动安全模式
sudo service mysql stop
解决了一些中间错误
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
使用命令登录mysql -u root
在此之后,我尝试了多种可能性,例如
根据一些研究,我发现我的插件是“auth_socket”,只有实际用户才能登录mysql。即,如果我想登录root@localhost,我必须root用户。或者,如果我是机器的用户,请说 user1。要使用auth_socket插件,mysql 的用户表中应该有一个名为“user1”的用户。(如果我错了,请纠正我)
- 所以我把我的插件改成了'mysql_native_password',并尝试用PASSWORD('password')方法设置密码。看起来现在在我的版本中不受支持
- 因此,我将插件从“mysql_native_password”更新为“sha2_password”,并尝试使用
UPDATE mysql.user SET authentication_string=SHA2('password', 256) where User='root';
FLUSH PRIVILEGES;
一切都更新了,整洁干净
停止安全模式sudo killall -KILL mysqld_safe
再次启动MySQLsudo service start mysql
尝试使用非哈希密码登录,例如注意 - 密码在单独的行中给出,输入这样的命令仅供参考。mysql -u root -p 'password'
仍然拒绝访问。我尝试了哈希方法和密码的多种组合。就像用mysql_native_password插件存储普通密码一样。没有任何效果
在一些参考资料中,我还发现我可能需要向用户授予所有权限。但是我的服务器说它不能在 --skip-grant-tables 模式下完成。请帮我解决这个问题
答: 暂无答案
评论