最近、MySQLをARMシステム(RBPI3)にインストールしました。
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がDBに接続できないことも意味します。ここで何が欠けていますか?
Debian/Ubuntu上のMariaDBは、デフォルトでUnixソケットを介して認証し、mysql
を呼び出すユーザーの有効なunixユーザーIDをチェックします。 mysql
をrootとして(または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;