Mariadb数据库mysql使用密码登录

在新版的Mariadb安装过程中没有设置密码的过程了,而用mysql_secure_installation命令设置Root密码,然后用phpmyadmin登录发现提示 Access denied for user ‘root’@’localhost’

mysql

而在命令行你发现直接用mysql就可以登录数据库,完全不用密码,然而你用其他的mysql管理工具使用密码无论如何都会提示 Access denied for user ‘root’@’localhost’ 。

搜索了一下,原来不是我们安装或者操作除了问题,是Mariadb在5.2.0以后的版本默认不再使用密码认证了,改用Authentication Plugin – Unix Socket插件认证。具体参考https://mariadb.com/kb/en/library/authentication-plugin-unix-socket/

使用service mysql status查看mysql服务状态你会发现有这样一条警告。

[Warning] ‘user’ entry root@localhost’ has both a password and an authentication plugin specified. The password will be ignored.

也就是使用Unix Socke插件认证直接忽略密码,自然使用密码也就无效了。

解决方法

虽然这是为了提高安全性,但有的地方我们必须使用密码认证登录,因此我们就要修改验证为密码的方式。直接在命令行输入 mysql 登录数据库。使用以下命令修改

use mysql
\g update mysql.user set plugin='mysql_native_password' where User='root'
\g flush privileges
\q   

现在重启下数据库,发现直接mysql是不可以的了
使用mysql -u root -p登录,输入之前用mysql_secure_installation命令修改的root密码即可登录。

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片

标签云

Mariadb数据库mysql使用密码登录

长按储存图像,分享给朋友

微信扫一扫

微信扫一扫