MySQLをlocalhost以外に公開するには、次の行が必要です。
MySQLバージョン5.6以下の場合
コメントアウト/etc/mysql/my.cnf
されておらず、コンピュータのIPアドレスに割り当てられており、ループバックではない
MySQLバージョン5.7以降の場合
コメントアウト/etc/mysql/mysql.conf.d/mysqld.cnf
されておらず、コンピュータのIPアドレスに割り当てられており、ループバックではない
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
または
bind-address = 0.0.0.0
、IPを指定しない場合は、
次に、新しいmy.cnfエントリでMySQLを停止して再起動します。実行したらターミナルに行き、次のコマンドを入力します。
lsof -i -P | grep :3306
これは、xxxの実際のIPでこのようなものに戻るはずです
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
上記のステートメントが正しく戻る場合は、リモートユーザーを受け入れることができます。ただし、リモートユーザーが正しい特権で接続するには、そのユーザーをlocalhostと '%'の両方で作成する必要があります。
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;
EXIT;
上記と同じユーザーを作成していない場合、ローカルにログオンすると、基本のlocalhost特権を継承し、アクセスの問題が発生する可能性があります。あなたがアクセスMYUSERを制限したい場合、あなたは、GRANT文の構文をよく読んでする必要がありましたHEREあなたはこのすべてを介して取得し、まだ問題がある場合は、いくつかの追加のエラー出力とのmy.cnf適切な行を投稿してください。
注:lsofが返されないか見つからない場合は、Linuxディストリビューションに基づいてここにインストールできます。機能させるためにlsofは必要ありませんが、期待どおりに機能しない場合は非常に便利です。