gpt4 book ai didi

mysql - 无法为 MySQL root 用户设置密码

转载 作者:太空狗 更新时间:2023-10-29 12:39:07 30 4
gpt4 key购买 nike

我正在尝试让 MySQL 在我的本地主机上运行。我以前从未发生过这种情况,但是在安装时 sudo apt-get install mysql-server 没有要求我提供初始密码。

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

mysqld_safe解决方案:

  • 重启我的电脑后,mysql -u root -p 会询问我的密码,在我输入密码后,它会报错 ERROR 1698 (28000): Access denied for用户 '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 UNIX 套接字文件的目录 '/var/run/mysqld' 不存在。 <
    • 我可以解决这个问题,如果我执行 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' 已弃用,将在未来版本中删除。
    • 在所有这一切之后,我回到了原点:进程仍然挂起,所以我必须重新启动,因为 killall mysqld_safe找不到进程。重新启动并输入我的新密码 0000 后,我将被拒绝访问。

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

mysqladmin 解决方案

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

mysqladmin: connect to server at 'localhost' failed

error: 'Access denied for user 'root'@'localhost''

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

mysqladmin: [Warning] Using a password on the command line interface can be insecure.

Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

最后一个并没有真正告诉我密码更改是否发生的任何信息;它是否被拒绝(因为它是一个警告,而不是一个错误,我认为它应该通过),但在任何一种情况下,尝试连接 0000 仍然说“访问被拒绝”。

非常感谢任何有关如何解决此问题的建议。

最佳答案

我没有直接用mysql解决问题;然而对我自己来说,可接受的解决方案是切换到不同的数据库软件,但它仍然是一个 MySQL 系统,它让我启动并运行。因此,如果有人像我一样受困于现有解决方案无法正常工作,也许这会派上用场,让您上路并最终再次编写代码。

我所做的是:

  1. 从我的系统中清除 mysql
  2. 手动删除了/etc/mysql/var/lib/mysql(不知道这一步是否必要)
  3. apt clean, apt autoremove, apt update
  4. 已安装 mariadb
  5. 已关注 these instructions摆脱超时错误
  6. 使用 mysqld_safe --skip-grant-tables 方法创建一个拥有所有权限的新用户,因为与 root 的连接总是失败

PHP + MariaDB 现在又可以工作了。

关于mysql - 无法为 MySQL root 用户设置密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55969187/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com