Ubuntu
に新しいServer v18を作成しましたMicrosoft Azure
。受信ルールを作成して、port 3306
私は走ったupdates and upgrades
やったsudo apt install mysql-server
以下を実行して実行されていることを確認しました:
sudo service mysql status
そして今、私はそれを介して接続しようとしていますが、ボタンをMySQL Workbench
クリックしても接続できませんtest connection
他に何が足りないでしょうか?
答え1
MySQLをlocalhost以外に公開するには、次の行が必要です。
MySQLバージョン5.6以下
/etc/mysql/my.cnf でコメントを解除し、ループバックではなくコンピュータの IP アドレスに割り当てる
MySQLバージョン5.7以上
/etc/mysql/mysql.conf.d/mysqld.cnfでコメントアウトを解除し、ループバックではなくコンピュータのIPアドレスに割り当てる
xxxをIPアドレスに置き換えてください
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';
then,
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
そして最後に、
FLUSH PRIVILEGES;
EXIT;
その後、mysql に接続できます。
これがお役に立てば幸いです。