MySQLをローカルホスト以外に公開するには、次の行が必要です
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)
上記のステートメントが正しく返される場合は、リモートユーザーを受け入れることができます。ただし、リモートユーザーが正しい特権に接続するには、そのユーザーをローカルホストと「%」の両方で作成する必要があります。
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;
上記と同じユーザーを作成していない場合、ローカルにログオンすると、基本ローカルホスト特権を継承し、アクセスの問題が発生する可能性があります。 myuserが持つアクセスを制限したい場合は、GRANTステートメントの構文ここ これらすべてを乗り越えても問題が解決しない場合は、追加のエラー出力とmy.cnfの適切な行を投稿してください。
注:lsofが返されない、または見つからない場合は、こちら をインストールできます。 Linuxディストリビューションに基づいています。物事を機能させるためにlsofは必要ありませんが、物事が期待どおりに機能していない場合に非常に便利です。
更新:bind-address
を追加/変更した後でも my.cnf
で 動作しなかった場合は、最初に宣言された場所に移動して変更します。
/etc/mysql/mariadb.conf.d/50-server.cnf