2016-08-13 105 views
1

我一直在使用openshift免費計劃託管我的web應用程序。我的MySQL設備使用100.0%的磁盤配額,因此不能再進行進一步的交易。我想移動到其他服務器,所以我試圖使用mysqldump獲取我的數據。但mysqldump無法通過套接字連接mysql服務器給我下面的錯誤。mysqldump無法在openshift中通過套接字連接

mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect

但是,mysql客戶端可以完美地連接到服務器。我也看了看mysql配置文件。

[mysqld] 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock 
user=mysql 
# Disabling symbolic-links is recommended to prevent assorted security risks 
symbolic-links=0 

[mysqld_safe] 
log-error=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid 

並明確地將套接字位置給mysqldump,如下所示。

mysqldump --socket=/var/lib/mysql/mysql.sock -u username -p databasename > backup-filename.sql

它仍然給出相同的錯誤。我也無法使用他們的支持,因爲使用免費計劃,也不想移動到他們的銀色計劃。所以我在想,

  1. 這可能是什麼問題?
  2. 是因爲100%的磁盤使用率?
  3. 如何獲取我的數據?

任何建議將大大有幫助的人,我想用serverfault這個問題,但openshift建議使用stackoverlfow。

感謝

+0

你檢查stackoverflow.com/questions/19658891/error-2002-hy000-cant-connect-to-local-mysql-server-through -socket-VAR運行? – mm759

+0

我的第一個想法是,你可能需要成爲根。 – mm759

+0

@ mm759:我檢查了你給我的鏈接,但是我的問題並不相似。在給定的鏈接中,問題出在mysql客戶端連接到服務器上,大部分答案都涉及服務器配置,重新啓動和重新設置,這是我因爲權限而無法完成的。然後,我嘗試在mysqldump腳本中包含主機和端口,並且在使用mysql客戶端時,我不需要包含這些信息。但遇到另一個問題「無法創建/寫入文件」/tmp/#sql_601ec_0.MYI「。我研究了它,並得出結論,需要至少有5%的空間來存儲數據。 –

回答

0

這是正確的做法:

mysqldump -u $OPENSHIFT_MYSQL_DB_USERNAME -h $OPENSHIFT_MYSQL_DB_HOST --password=$OPENSHIFT_MYSQL_DB_PASSWORD db_name > dump.sql