如何获取 mysql 初始 root 密码?

如何获取 mysql 初始 root 密码?

使用 安装mysql后sudo apt-get install mysql-server,没有要求我填写root帐户的特定密码。从逻辑上讲,这意味着密码为空。当我查看/var/log/mysql/error.log时,我得到了证实,在那里我可以找到此信息=>

2019-04-28T20:31:35.761063Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

但是现在,当我使用 root 登录名和空密码连接到 PHPAdmin 时,出现一条消息:

#1698 - Access denied for user 'root'@'localhost'

还有更多细节:

mysqli_real_connect(): (HY000/1045): Access denied for user 'phpmyadmin'@'localhost' (using password: YES)

我该如何解决这个问题?

答案1

在 Ubuntu 18.04 和 mysql-5.7 中,mysql root 登录的默认方法已更改,现在您必须是超级用户(通过执行sudo mysql -u root或先调用 root shell sudo bash)。由于您已通过 root 用户身份验证,因此不再需要密码。

也可以看看这个问题及其答案。

答案2

您可以通过以下步骤更改密码并设置新的 root 密码:

sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
mysql -u root

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

skip-grant-tables 选项使任何人都可以无需密码并拥有所有权限进行连接

相关内容