答案1
虽然原帖者声称已经找到了解决这个问题的方法在这个答案中,这对我来说毫无意义。但现在我明白了,一些 Debian/Ubuntu 发行版使用基于套接字的身份验证方法。sudo
正如他们所描述的那样,这种默认启用的身份验证方法自然需要用户进入 MySQL。
但一般来说,没有理由mysql_secure_installation
通过运行sudo
。这在大多数情况下没有意义,因为 MySQL 不需要sudo
这样的客户端事务……除非基于套接字的身份验证在起作用。 并且mysql_secure_installation
只是一个 Bash 脚本,它运行一堆命令,这些命令位于一个漂亮、方便的包中,允许更新一些与 MySQL 相关的安全项目。只需查看源代码看看我的意思。
因此,如果你的系统没有使用基于套接字的身份验证,并且您面临类似的问题,解决方案是旧版本的 MySQL 的密码为空。因此,您只需运行此命令即可进入 MySQL:
mysql -uroot -p
或者在 的情况下,当提示输入密码时,mysql_secure_installation
只需点击Return或。Enter
或者对于现代版本的 MySQL — — 我相信是 MySQL 5.7 或更高版本 — — 您需要检查错误日志中是否存在如下消息:
“2016-05-16T07:09:49.796912Z 1 [注意] 为root@localhost生成临时密码:8)13ftQG5OYl”
这是取自的一个例子有关此主题的 Persona 博客条目。至于这个 MySQL 日志条目在哪里,它可能在/var/log/mysqld.log
CentOS/RedHat 服务器上,或者它显示为 Ubuntu/Debian 系统上软件包安装的输出。
但是只需检查错误日志中的文本“临时密码”就会为您提供root
MySQL 首次安装时设置的初始密码。
答案2
我找到了解决方案。它需要按如下方式执行superuser
我必须执行$ sudo mysql_secure_installation
mysql
另外,如果我想在终端上登录,我sudo
必须