Windows-Server-2003

客戶端連接到 MySQL 時客戶端的 DNS 名稱錯誤 - 如何使用另一個客戶端主機名?

  • November 30, 2011

從一個 Amazon EC2 實例連接到另一個實例時,我正在嘗試使用受主機限制的 MySQL 使用者。我想為他們的 dns 功能使用彈性 IP 地址,但您可能可以忽略此問題中的 Amazon EC2 引用。

我想我的問題是**,當以使用者身份連接到 mysql 時,客戶端如何定義 mysql 客戶端的 dns 名稱?**

如果我有問題,我很抱歉。也許它更通用 - 如何定義本地機器主機名以用於任何傳出連接?

問題是客戶端應用程序有兩個 dns 名稱,但我需要使用另一個。詳情如下:

Public                                    
db.fixedip.amazonaws.com                  app.fixedip.amazonaws.com
-------------------------------------------------------------------------------
Internal
db.randomdns.ec2.internal                 app.randomdns.ec2.internal

Actual machine instance
MySQL on Linux                            App on Windows 2003
'user'@'app.fixedip.amazonaws.com'

從應用程序

mysql -uuser -p -hdb.fixedip.amazonaws.com
ERROR 1130 (HY000): Host 'app.randomdns.ec2.internal' is not allowed to connect to this MySQL server

db.fixedip.amazonaws.com 可以方便地解析為內部 IP 地址(可以更改),但 MySQL 客戶端並未被辨識為其非隨機 app.fixedip.amazonaws.com 公共 dns 名稱。

這似乎不起作用:)

mysql -uuser@app.fixedip.amazonaws.com -p -hdb.fixedip.amazonaws.com

更新:目前的答案重新定義了問題 - 不要打擾 mysql 中的主機並使用替代主機限制。我會接受,除非其他人想對原始問題發表評論

在 EC2 中實現安全 MySQL 數據庫訪問的標準方法是使用 EC2 安全組。僅允許從特定安全組(例如“dbclient”)中的 EC2 實例連接到 MySQL 數據庫伺服器埠 (3306)。將任何數據庫客戶端 EC2 實例放在“dbclient”安全組中。

配置 MySQL 本身以允許來自任何主機 ("%") 上的經過身份驗證的使用者的連接。

這解決了必須跟踪所有 EC2 實例的內部 IP 地址的問題,特別是因為當您停止和啟動實例時這些地址會發生變化,即使您分配了彈性 IP 地址也是如此。

這是我寫的一篇文章,它可以幫助您使用基於伺服器的彈性 IP 地址 DNS 名稱的內部 IP 地址從數據庫客戶端連接到數據庫伺服器:

使用彈性 IP 辨識 Amazon EC2 上的內部實例

http://alestic.com/2009/06/ec2-elastic-ip-internal

這有助於解決數據庫伺服器在停止和啟動或更換時更改 IP 地址的問題。

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