AWS Lightsailに新しいサーバーをセットアップしていますが、すべて問題ありませんが、LEMPスタックにMySqlをインストールしてDBを作成しました。何らかの理由で、DBクライアントを介して(TablePlusを使用して)そのDBにリモートでアクセスすることはできません。
以前はVultrまたはDigital Oceanサーバーを使用していたため、次のようにetc/mysql/mysql.conf.d/mysqld.cnf
ファイルにIPアドレスを追加する必要がありました。
# bind-address = 127.0.0.1
bind-address = 34.xxx.xxx.xxx
これにより、自分のDBユーザー名でログインして、作成したものを渡すことができます。
AWS Lightsailはこれを許可していませんか?彼らはあなたに購入してほしいCreate DB Instanceサービスを持っていますが、これを安く保ち、私が私のサーバーに構築したDBだけが必要です。
リモートでDBクライアントに接続する方法についてのヘルプは非常にありがたいです。
Ubuntu 18.04 LTSの使用
だから私はそれを理解しました。誰かがこの問題に遭遇した場合は、以下を試してください。
AWS Lightsailは2つのIPを提供します
_etc/mysql/mysql.conf.d/mysqld.cnf
_ファイルで、次の操作を行います。
_# bind-address = 127.0.0.1 (Disable this)
# bind-address = 34.xxx.xxx.xxx (Don't use Static IP)
bind-address = 172.xx.xx.xx (Use Private IP)
_
AWS Lightsail Firewallに_MySQL/Aurora | TCP | 3306
_を追加します
サーバーで次のコマンドを実行します。
_Sudo service mysql stop
Sudo service mysql start
_
DBクライアントとの接続:
それでおしまい。今はすべてが機能するはずです。
以下で説明するように、新しいMySqlユーザーを作成する必要があります。あなたはこのようにすることができます:
_mysql -u root -p'' (Login to MySql with the credentials you used to create MySql, -u might be different)
_
2。
_CREATE USER 'admin'@'34.xxx.xxx.xxx' IDENTIFIED BY 'your_new_pass_here';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'34.xxx.xxx.xxx' IDENTIFIED BY 'your_new_pass_here';
CREATE USER 'admin'@'%' IDENTIFIED BY 'your_new_pass_here';
GRANT ALL PRIVILEGES ON *.* TO 'admin' IDENTIFIED BY 'your_new_pass_here';
_
_FLUSH PRIVILEGES;
_
データベースをリモートで機能させるには、_/etc/mysql/mysql.conf/mysqld.cnf
_に移動してバインドアドレスを変更します。
_# bind-address = 127.0.0.1 (Disable this)
# bind-address = 34.xxx.xxx.xxx (Don't use Static IP)
bind-address = 172.xx.xx.xx (Use Private IP)
_
_service mysql restart
_
(Laravelを使用している場合は、新しい.envに追加します)
_DB_CONNECTION=mysql
DB_Host=34.xxx.xxx.xxx
DB_PORT=3306
DB_DATABASE=database_name
DB_USERNAME=admin
DB_PASSWORD=your_new_pass_here
_
MySqlユーザーのリストを取得する必要がある場合は、次のようにします。_SELECT User FROM mysql.user;
_新しいユーザーがシステムに存在するかどうかを再確認するのに役立ちます。
MySQLポートが公開されている必要があることをLightsailに伝える必要があります。ドキュメントは here です。
私は自分でLightsailを使用していません(私はフルAWSを使用しています)が、Lightsailファイアウォールを使用するか、Linuxでiptablesを使用して、特定のIPのみをホワイトリストに登録できるかどうか確認してください。