したがって、BlueHostが所有するWebサーバーに2つのユーザーアカウントがあります。それらを「root」と「user1」と呼びましょう。ルートLinuxアカウントにログインするときは、「ルート」mysqlアカウントでmysqlにログインしようとします。その後、mysqlにログインできます。そこはすべて良いです。
問題は、まったく同じ資格情報を使用して「user1」Linuxアカウントからmysql「root」ユーザーにログインしようとすると(なし。そのmysqlアカウントにパスワードがない)、エラーが発生することです。言うメッセージ:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Linuxには、「user1」ユーザーに対して変更する必要のあるユーザー権限がありますか?
最近のmysql/mariadbサーバーには、プラグインベースの認証システムがあります。
_MariaDB [(none)]> select user,Host,password,plugin from mysql.user limit 1;
+------+-----------+-------------------------------------------+-------------+
| user | Host | password | plugin |
+------+-----------+-------------------------------------------+-------------+
| root | localhost | | unix_socket |
+------+-----------+-------------------------------------------+-------------+
_
この構成では、root @ localhostへのアクセスはunixユーザー「root」にのみ許可され、実際のユーザーIDはmysqlサーバーに送信され、ログインは要求されたmysqlユーザーと一致する場合にのみ許可されます。
「user1」がmysqlサーバーにログインできるようにするには、次のいずれかを行う必要があります。
Root認証を「通常の」ログイン/パスワード認証に戻します(注意してください。自動化されたスクリプト、ログローテーション、サービスの開始/停止などのほとんどが壊れます)。 ALTER USER root@localhost identified with 'mysql_native_password'; SET PASSWORD = password('foo');
Unix_socket auth:_CREATE USER user1 IDENTIFIED VIA unix_socket;
_を使用してmysql user1を作成し、彼にルートアクセス権を付与します_GRANT ALL WITH GRANT OPTION ON *.* TO user1@localhost;
_