Ubuntu Server 16.04中MySQL的默认密码
如果您在Ubuntu Server 16.04上安装了MySQL,您可能会遇到一个问题:您不知道MySQL的默认密码是什么。
这是因为在新版Ubuntu Server 16.04中,MySQL的默认安装已更改为使用unix套接字身份验证(auth_socket plugin)代替用于TCP/IP套接字的传统密码身份验证(mysql_native_password plugin)。
默认情况下,此身份验证方式只允许Unix套接字连接而非TCP/IP连接。因此,无法通过创建用户名和密码来连接MySQL服务器。
阅读更多:MySQL 教程
如何解决这个问题?
有两种方法可以解决此问题:
方法一
使用sudo登录到MySQL服务器,然后更改“root”用户的身份验证方式为“mysql_native_password”。代码示例如下:
$ sudo mysql
输入管理员密码后,输入以下代码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
其中“password”是您想要使用的新密码。密码强度应当越高越好,建议使用组合大小写字母、数字和符号的强密码。
方法二
可以通过在使用root权限的情况下以管理身份连接到MySQL服务器来解决此问题。代码示例如下:
$ sudo mysql -u root
不需要密码验证,您就可以访问MySQL服务器。然后,您可以执行以下操作来更改“root”用户的身份验证方式(也可以创建其他用户和密码):
mysql> use mysql;
mysql> update user set authentication_string=PASSWORD('password') where User='root';
mysql> flush privileges;
其中“password”是您要设置的新密码。
总结
在Ubuntu Server 16.04中,MySQL的默认安装使用unix套接字身份验证,而不是TCP/IP身份验证。因此,在首次安装完毕后尝试连接时需要注意密码问题,可以通过使用sudo身份的方法解决。并且密码强度也需要保证。
极客教程