user@'%'
でユーザーを作成しましたpassword 'password
。しかし、次のユーザーと接続できません:
mysql_connect('localhost:3306', 'user', 'password');
ユーザーを作成するとuser@'localhost'
、接続できました。なぜでしょうか? '%' は任意のホストからという意味ではないのでしょうか?
ベストアンサー1
リモート接続するには、my.cnfでMySQLのポート3306をマシンのIPアドレスにバインドする必要があります。次に、localhostと「%」ワイルドカードの両方でユーザーを作成し、すべてのDBに権限を付与する必要があります。。以下を参照してください:
my.cnf (Windows では my.ini)
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
それから:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
それから:
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
OS によっては、リモート接続を許可するためにポート 3306 を開く必要がある場合があります。