微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nginx – 不运行sudo就无法访问MySQL

我最近在ARM系统(RBPI3)上安装MySQL,如果我运行:

pi@raspBerrypi:~ $MysqL -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

但是它与sudo连接:

pi@raspBerrypi:~ $sudo MysqL -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.1.23-MariaDB-9+deb9u1 Raspbian 9.0

copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

如果我不是su,我不明白为什么我无法访问该服务.这也意味着,例如,使用作为www-data用户运行的Nginx执行的wordpress无法连接到我的数据库.我在这里错过了什么?

解决方法:

Debian / Ubuntu上的MariaDB认通过Unix套接字进行身份验证,并检查调用MysqL用户的有效unix用户ID.如果不以root用户身份运行MysqL(或使用sudo),则会失败.

https://mariadb.com/kb/en/library/authentication-plugin-unix-socket/

要将其更改回经典方法,请使用sudo(sudo MysqL -u root)登录数据库并更改您的用户,如下所示:

ALTER USER 'root'@'localhost' IDENTIFIED WITH MysqL_native_password BY 'test';
FLUSH PRIVILEGES;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐