Mysql

將 MySQL 數據庫移動到另一台伺服器,但套接字一直指向 localhost

  • September 5, 2017

我知道我不應該為此煩惱,也許我應該禁用舊的 mysql,但這是來自 Bitnami 的 Magento 虛擬設備,它可以作為一個整體工作(應用程序和數據庫在同一台伺服器上)。

不過,我必須遵循客戶的設計,並將 mysql 數據庫帶到 Amazon RDS 實例。(magento/應用程序伺服器也是亞馬遜的 EC2)。

應用伺服器有一個啟動 mysql、apache 和其他東西的腳本。在此過程中,它總是嘗試使用伺服器擁有的任何新數據(如 DNS、主機名、IP 地址)來更新 mysql 數據庫。但是由於數據庫不再存在,因此無法這樣做。

我從來沒有找到改變 mysql.sock 配置的方法。我只是重新配置它並使用適當的憑據指向新伺服器,但我在網際網路上的任何地方都找不到如何做到這一點。

我可以忘記舊的 mysql,但是我所做的任何更改都必須在遠端伺服器中手動更新,而且我擔心這個腳本正在控制很多其他我無法控制的東西。

簡而言之,我的問題是:mysql.sock 指向錯誤的數據庫。我怎麼能改變這個?

感謝您的關注!

它是一個用於程序間通信的套接字文件,您必須停止本地 MySQL 伺服器並確保 mysql.sock 不存在。然後您必須重新創建套接字文件以將連接發送到正確的目的地(在您的情況下,它是 Amazon RDS)。

有很多方法可以創建一個套接字文件,例如你可以使用socat,命令是(你可能需要修改你的設置) -

socat UNIX-LISTEN:/path/to/mysql.sock,fork,reuseaddr,unlink-early,user=mysql,group=mysql,mode=777 TCP:<Amazon RDS Server>:3306 &

來源: http: //linux.die.net/man/1/socat

注意:這不是解決此問題的正確方法,因此您可能需要檢查 bnconfig 腳本以獲得正確的修復。

引用自:https://dba.stackexchange.com/questions/108272