伺服器在使用了 Docker 後,對于備份和恢複資料庫的事情做下記錄:
由于 docker 不是實體,是以要把mysql的資料庫導出到實體機上,指令如下:
1:檢視下 mysql 運作名稱
#docker ps
結果:


2:備份docker資料庫
由第一步的結果可知,我們的 mysql 運作在一個叫 mysql_server 的 docker 容器中。而我們要備份的資料庫就在裡面,叫做 test_db。mysql 的使用者名密碼均為root,我們将檔案備份到/opt/sql_bak檔案夾下。
docker exec -it mysql_server【docker容器名稱/ID】 mysqldump -uroot -p123456【資料庫密碼】 test_db【資料庫名稱】 > /opt/sql_bak/test_db.sql【導出表格路徑】
3:導入docker資料庫
方法1:
先将檔案導入到容器
#docker cp **.sql 【容器名】:/root/
進入容器
#docker exec -ti 【容器名/ID】sh
将檔案導入資料庫
# mysql -uroot -p 【資料庫名】 < ***.sql
方法2:
docker exec -i mysql_server【docker容器名稱/ID】 mysqltest_db_copy【資料庫名稱】 < /opt/sql_bak/test_db.sql【本地資料表路徑】
注意:這裡需要将參數 -it 更換為 -i ,
否則會報錯:”the input device is not a TTY”