Ubuntu

遠端連接到 MySql AWS Lightsail

  • May 8, 2020

我在 AWS Lightsail 上設置了一個新伺服器,一切都很好,但是在我的 LEMP 堆棧中,我安裝了 MySql 並創建了我的數據庫。出於某種原因,儘管我無法通過我的數據庫客戶端(使用 TablePlus)遠端訪問該數據庫。

在過去使用 Vultr 或 Digital Ocean 伺服器時,我必須將 IP 地址添加到etc/mysql/mysql.conf.d/mysqld.cnf文件中,如下所示:

# bind-address = 127.0.0.1
 bind-address = 34.xxx.xxx.xxx

這將允許我使用我的數據庫使用者名登錄並傳遞我創建的使用者名。

AWS Lightsail 是否不允許這樣做?他們有一個希望您購買的創建數據庫實例服務,但試圖在這方面保持便宜,並且只需要我在伺服器中建構的數據庫。

任何有關如何與數據庫客戶端遠端連接的幫助都將非常感激。

使用 Ubuntu 18.04 LTS

所以我想通了。如果有人遇到此問題,請嘗試以下操作。

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 防火牆中添加MySQL/Aurora | TCP | 3306

在伺服器上執行以下命令:

sudo service mysql stop
sudo service mysql start

連接數據庫客戶端:

  • 主機/套接字 = 34.xxx.xxx.xxx(使用靜態 IP)
  • 埠 3306
  • 使用者:admin(您創建的使用者帳戶(參見下文如何操作))
  • 密碼 your_new_pass_here(您創建的密碼)
  • 數據庫:mydatabase(您創建的數據庫名稱)

就是這樣。現在一切都應該工作了。


如下所述,您確實需要創建一個新的 MySql 使用者。你可以這樣做:

  1. 創建數據庫使用者,以便我們可以從本地機器/數據庫客戶端遠端訪問它:
mysql -u root -p'' (Login to MySql with the credentials you used to create MySql, -u might be different)
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;
  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; 有助於仔細檢查您的新使用者是否在系統中。

引用自:https://serverfault.com/questions/1014142