前言
站在用戶的角度思考問題,與客戶深入溝通,找到龍井網(wǎng)站設(shè)計(jì)與龍井網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋龍井地區(qū)。
MySQL數(shù)據(jù)的導(dǎo)入導(dǎo)出我們都知道一個(gè)mysqldump命令就能夠解決,但如果是運(yùn)行在docker環(huán)境下的mysql呢?
解決辦法其實(shí)還是用mysqldump命令,但是我們需要進(jìn)入docker的mysql容器內(nèi)去執(zhí)行它,并且通過配置volumes讓導(dǎo)出的數(shù)據(jù)文件可以拷貝到宿主機(jī)的磁盤上
所以操作步驟就可以分為:
至于數(shù)據(jù)導(dǎo)入,太過簡(jiǎn)單,就不說了
先來看看mysqldump命令常見選項(xiàng):
配置volumes
首先我是利用docker-compose進(jìn)行docker容器的編排,完整的配置代碼請(qǐng)看這個(gè)項(xiàng)目: liumapp/rabbitmq-mysql-redis-in-docker
請(qǐng)注意這個(gè)項(xiàng)目的docker-compose.yml配置文件中,有以下幾行:
mysql: container_name: mysql image: mysql:5.5.60 restart: always volumes: - ./mysql/data:/var/lib/mysql - ./mysql/conf/mysqld.conf:/etc/mysql/mysql.conf.d/mysqld.cnf
我對(duì)mysql容器配置的volumes,是把項(xiàng)目的mysql/data目錄和docker容器內(nèi)的/var/lib/mysql建立映射關(guān)系
所以下面我進(jìn)入docker的mysql容器內(nèi)執(zhí)行導(dǎo)出命令的時(shí)候,只需要把數(shù)據(jù)導(dǎo)出在/var/lib/mysql/目錄下,就可以在宿主機(jī)的./mysql/data/目錄下找到對(duì)應(yīng)的數(shù)據(jù)文件
進(jìn)入容器導(dǎo)出數(shù)據(jù)
首先執(zhí)行
docker ps
找到mysql容器的name
然后執(zhí)行
docker exec -it mysql /bin/bash
進(jìn)入容器
執(zhí)行命令
whereis mysql
找到mysql的運(yùn)行路徑,我這里是:/usr/local/mysql/bin,用cd進(jìn)入
cd /usr/local/mysql/bin
請(qǐng)注意,這里的路徑是指docker容器內(nèi)的路徑,跟您的宿主機(jī)路徑?jīng)]有關(guān)系
執(zhí)行導(dǎo)出命令
mysqldump -u 用戶名 -p 數(shù)據(jù)庫(kù)名 > 保存文件.sql
輸入密碼后基本導(dǎo)出成功,請(qǐng)注意,保存文件的路徑要設(shè)置在volumes下面,即/var/lib/mysql/下
隨后輸入
exit
退出容器內(nèi)部,回到宿主機(jī)上,我們就能夠找到導(dǎo)出的數(shù)據(jù)文件了
如果您要導(dǎo)出csv格式的話,將mysqldump的那句命令改為:
mysql -u 用戶名 --password=密碼 --database=數(shù)據(jù)庫(kù)名 --execute='SELECT `FIELD`, `FIELD` FROM `TABLE` LIMIT 0, 10000 ' -X > 保存文件.sql
即可
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。