175

でユーザーを作成user@'%'しましたpassword 'password。しかし、私は接続できません:

mysql_connect('localhost:3306', 'user', 'password');

user を作成したらuser@'localhost'接続できました。なんで?「%」は任意のホストからのものではないですか?

4

5 に答える 5

14

ユーザーはどのDBのですか?この例を見てください

mysql> create database databasename;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on databasename.* to cmsuser@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

質問に戻ると、「%」演算子はネットワーク内のすべてのコンピューターを意味します。

Aspesa が示すように、ユーザーを作成または更新する必要があることも確信しています。すべての mysql ユーザーを探します。

SELECT user,password,host FROM user;

ユーザーをセットアップするとすぐに、次のように接続できるはずです。

mysql -h localhost -u cmsuser -p

それが役に立てば幸い

于 2013-04-29T20:29:23.863 に答える
2

mysql_navtive_password を使用してパスワードを持つ既存のユーザーを使用していました

CREATE USER 'sammy'@'remote_server_ip' IDENTIFIED WITH mysql_native_password BY 'password';

それよりも

CREATE USER 'sammy'@'remote_server_ip' IDENTIFIED BY 'password';

したがって、接続できませんでした。古いものを削除し、mysql_native_password なしで新しいものを作成するとうまくいきました

于 2021-08-17T22:58:08.037 に答える