使用 安装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 选项使任何人都可以无需密码并拥有所有权限进行连接