web-dev-qa-db-ja.com

MySql AWS Lightsailへのリモート接続

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の使用

1
echo

だから私はそれを理解しました。誰かがこの問題に遭遇した場合は、以下を試してください。

AWS Lightsailは2つのIPを提供します

  • 静的IP = 34.xxx.xxx.xxx
  • プライベートIP = 172.xx.xx.xx

_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クライアントとの接続:

  • ホスト/ソケット= 34.xxx.xxx.xxx(静的IPを使用)
  • ポート3306
  • ユーザー:管理者(作成したユーザーアカウント(方法は以下を参照))
  • パスワードyour_new_pass_here(作成したパスワード)
  • データベース:mydatabase(作成したDB名)

それでおしまい。今はすべてが機能するはずです。


以下で説明するように、新しいMySqlユーザーを作成する必要があります。あなたはこのようにすることができます:

  1. ローカルマシン/データベースクライアントからリモートアクセスできるようにDBユーザーを作成します。
_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';
_
    3。
_FLUSH PRIVILEGES;
_
  1. バインドアドレス

データベースをリモートで機能させるには、_/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)
_
  1. 出口
  2. _service mysql restart_

  3. (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;_新しいユーザーがシステムに存在するかどうかを再確認するのに役立ちます。

1
echo

MySQLポートが公開されている必要があることをLightsailに伝える必要があります。ドキュメントは here です。

私は自分でLightsailを使用していません(私はフルAWSを使用しています)が、Lightsailファイアウォールを使用するか、Linuxでiptablesを使用して、特定のIPのみをホワイトリストに登録できるかどうか確認してください。

0
Tim