错误1045(28000):用户'root'@'localhost'的访问被拒绝(使用密码:否),也无法重置密码

时间:2019-12-04 13:36:35

标签: mysql

我无法访问我的MySQL数据库。 问题:

  

root @ server:〜# mysql -uroot

错误1045(28000):用户'root'@'localhost'的访问被拒绝(使用密码:NO)

尝试重设密码:

  
      
  • /etc/init.d/mysql stop
  •   
  • mysqld_safe --skip-grant-tables&
  •   

导致:

root @ server:〜#... mysqld_safe登录到syslog。 ... mysqld_safe登录到'/var/log/mysql/error.log'。 ... mysqld_safe目录  UNIX套接字文件的'/ var / run / mysqld'不存在。

结果:

  

root @ server:〜#mysql -uroot

错误2002(HY000):无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器

  

root @ server:〜#mysql -u root -p

输入密码: 错误1045(28000):用户'root'@'localhost'的访问被拒绝(使用密码:是)

2 个答案:

答案 0 :(得分:0)

来自Resetting Root Password on Unix and Unix-Like Systems的B.4.3.2.2节中的方向。

  1. 以root身份杀死mysqld进程。
  2. 创建一个文本文件,其中包含一行上的密码分配语句:ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';
  3. 启动MySQL:mysqld --init-file=/path/to/file-from-step-2 --user=mysql
  4. 删除您在步骤2中创建的文件

答案 1 :(得分:0)

这是对我有用的解决方案。

  

sudo mysql --defaults-file = / etc / mysql / debian.cnf

现在我进入了! :-)

  

DROP USER'root'@'localhost';

     

创建用户'root'@'localhost'由'the_password'标识;

     

上授予所有特权。使用GRANT选项将其授予'root'@'localhost';

     

上授予所有特权。使用GRANT选项将其授予'root'@'localhost';

感谢毛兹·扎多克(Maoz Zadok):

https://stackoverflow.com/a/49778695/12226925