2016-09-16 87 views
0

我有一個從沒有安裝Docker的機器上獲取的轉儲。格式是.sql.gz - 我的問題是如何在Docker MySQL實例上恢復這個?如何恢復Docker MySQL實例上的.sql.gz轉儲?

可以從命令行訪問MySQL:

docker run -it --link first-mysql:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"' 

不能以此來恢復轉儲:

泊塢窗EXEC -i第一mysql的mysql的-uroot -ppassword < db_dump.sql

回答

2

基本語法是:

gunzip dump.sql.gz 
docker exec -i container_name mysql -uroot -proot < dump.sql 

或複製到dunp.sql一卷進入conatainer並在那裏啓動mysql

docker exec -ti container_name bash 
mysql < /volume_dir/dump.sql 

其餘的在mysql語法中。

+0

的基本語法是行不通的。如果我這樣做,我會得到'拒絕訪問'。 – MontyPython

+0

如果錯誤來自mysql,則提供'-u uername -p password'參數。但這是基本的mysql語法。 –

+0

是的,但它不起作用。它說'訪問被拒絕'。我知道這是基本的mysql語法:) – MontyPython

1
  1. 因爲從根登錄不是問題,請使用root登錄到MySQL。
  2. 創建具有所有權限的另一個用戶,這是一種等同於root的權限。
  3. 沖洗privieleges。

泊塢窗EXEC -i CONTAINER_NAME MySQL的-uloader -ploader < dump.sql