服務器在使用了 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”