1. 程式人生 > >Docker執行的MySQL,如何快速匯入資料?

Docker執行的MySQL,如何快速匯入資料?

       之前匯入資料都是用的資料庫連線工具自帶的匯入功能,有時候匯入資料需要兩個小時,簡直沒辦法忍受。後來有了一個更快的方式匯入資料,把他記錄下來,希望大家不再忍受匯入資料的煎熬。。。。

       1、備份資料庫表結構,暫時還沒有遇到特別有效的方法,我都是用show create table your_table_name,然後複製到一個檔案中,把檔案命名為ddl_bak.sql。為了安全起見,還可以在每個建表語句前面新增drop  table your_table_name , create database  your_data_base ,use your_data_base 等。

       2、把資料庫中的表資料匯出為insert語句,儲存為dml_bak.sql。

       3、把1和2中的兩個檔案儲存到伺服器的某個路徑下面,比如/bak/mysql/sqls

      4、檢視MySQL的容器長ID,執行的命令是docker inspect -f {{.ID}} mysql。之前自己備份不成功是因為自己直接用了容器的短ID。執行docker ps |grep  mysql  返回的那個是短ID。真是被自己的智障打敗了

    5、執行docker exec -it mysql bash ,進入docker 的環境中,穿件一個資料夾,用來放即將要放的sql 檔案。比如叫/bak/mysql/sqls

      6、執行exit,退出到linux環境中,執行docker cp  伺服器路徑 長ID:/目標資料夾 ,在本文中要執行的命令就是: docker cp /bak/mysql/sqls/dml_bak.sql 長ID:/bak/mysql/sqls/docker_dml_bak.sql。       

      7、重新進入docker的MySQL,docker exec -it mysql bash。

     8、接下來開始真正的備份資料,mysql -uUserName -pPwd,然後執行source /bak/mysql/sqls/docker_dml_bak.sql。

總結:這個備份過程每一步都很簡單,很清晰,終於不需要用資料庫連線工具的一條條的插入資料了。有兩點導致自己一直使用之前的低效備份方式。1、不知道mysql source 命令,2、自己的docker 太菜。