无法为MySQL根用户设置密码

时间:2019-05-03 11:46:35

标签: mysql linux mysqladmin

我试图让MySQL在我的本地主机上运行。这以前从未发生过,但是在安装sudo apt-get install mysql-server时并没有要求我输入初始密码。

在搜索“重置”我的密码并与目录权限进行斗争之后,我目前处于这种状态:

mysqld_safe解决方案:

  • 重新启动计算机后,mysql -u root -p会要求我输入密码,输入密码后,它将以ERROR 1698 (28000): Access denied for user 'root'@'localhost'提示
  • 如果我改为尝试mysql -u root(无密码),则会显示ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
  • 如果我运行其他人发布的关于通过mysqld_safe --skip-grant-tables重设密码的建议,那么我会遇到一些麻烦:
    • 首先我运行sudo service mysql stop
    • 然后sudo mysql_safe --skip-grant-tables会说mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
    • 如果我执行sudo mkdir -p /var/run/mysqldsudo chown mysql /var/run/mysqld
    • ,我可以解决此问题
    • 此后,运行mysqld_safe将显示消息Starting mysqld daemon with databases from /var/lib/mysql,然后挂起。而 Ctrl + C 并不能使我摆脱困境。
    • 我现在可以在新的终端窗口中实际上与mysql -u root连接并得到mysql>提示。
    • 我可以使用use mysql; update user set authentication_string=password('0000') where user='root';flush privileges;设置一个新密码,这将告诉我它成功更新了带有消息Rows matched: 1 Changed: 1 Warnings: 1的行
    • 警告仅指出:'PASSWORD' is deprecated and will be removed in a future release.
    • 所有这些之后,我回到了第一广场:该过程仍然挂起,因此我必须重新启动,因为killall mysqld_safeno process found。重新启动并输入新密码0000后,我将被拒绝访问。

系统为Linux 4.15.0-48-generic #51-Ubuntu SMP

mysqladmin解决方案

如果我运行mysqladmin -u root password '0000'(没有sudo),我得到:

  

mysqladmin:连接到“ localhost”服务器失败

     

错误:“用户'root'@'localhost'的访问被拒绝

如果我使用sudo运行它,则会得到:

  

mysqladmin:[警告]在命令行界面上使用密码可能不安全。

     

警告:由于密码将以纯文本形式发送到服务器,因此请使用ssl连接以确保密码安全。

关于密码更改是否发生,这最后一个并没有告诉我任何事情;是否拒绝了它(因为这是一个警告,不是错误,我认为应该通过),但是无论哪种情况,尝试与0000进行连接仍然会显示“访问被拒绝”。

对于如何解决此问题的任何建议,我们深表感谢。

1 个答案:

答案 0 :(得分:0)

我并没有直接解决mysql的问题;但是对我自己来说,可接受的解决方案是切换到其他数据库软件,但它仍然是MySQL系统,它使我开始运行。因此,如果有人陷入无法像我那样工作的现有解决方案的问题,也许这对派上用场并最终再次编写代码非常有用。

我所做的是:

  1. 从系统中清除mysql
  2. 手动删除/etc/mysql/var/lib/mysql(不知道此步骤是否必要)
  3. apt cleanapt autoremoveapt update
  4. 已安装mariadb
  5. 跟随these instructions摆脱超时错误
  6. 使用mysqld_safe --skip-grant-tables方法创建具有所有特权的新用户,因为与root的连接始终会失败

PHP + MariaDB现在可以再次使用。