MySQL 8 拷貝MySQL數據庫到另一台機器


通過mysqldump生成包含SQL語句的文件,然后將其應用到目標機器的mysql客戶端程序。

 

mysqldump --help 可以獲取mysqldump選項以及用法。

 

如果源服務器上啟用了GTID模式,在默認情況下,mysqldump生成的DUMP文件包含GTID信息。如果目標機器沒有啟用GTID會導致導入出現問題。可以通過--set-gtid-purged 選項做調整。

--set-gtid-purged 選項目前有四個可選值:ON, COMMENTED, OFF 和 AUTO

 

下面是一些用法,比如:

最簡單(盡管不是最快速)的方式在兩台機器之間傳遞數據如下:

mysqladmin -h 'other_hostname' create db_name

mysqldump db_name | mysql -h 'other_hostname' db_name

比如:

mysqldump -uroot -poracle --databases test | mysql -uroot -poracle -h192.168.1.150

 

如果是從遠端數據庫傳遞數據,而且網絡比較慢的話,可以通過mysqldump工具提供的壓縮選項做一些優化

mysqladmin create db_name

mysqldump -h 'other_hostname' --compress db_name | mysql db_name

比如:

mysqldump -uroot -poracle -h192.168.1.150 --compress --databases test | mysql -uroot -poracle

 

可以通過在源端,使用mysqldump工具生成DUMP文件,然后拷貝的目標端,再通過mysql客戶端程序應用

mysqldump --quick db_name | gzip > db_name.gz

mysqladmin create db_name

gunzip < db_name.gz | mysql db_name

注:--quick 選項:不緩存mysqldump工具生成的query。比如:

mysqldump -uroot -poracle --quick --databases test | gzip > test.gz

scp test.gz root@192.168.1.150:~

gunzip < test.gz | mysql -uroot -poracle

 

通過mysqldump與mysqimport的組合,在處理大表的情況下,比單個的mysqldump更快一些

mkdir DUMPDIR

mysqldump --tab=DUMPDIR db_name

mysql  -e "create db_name"           # create database

cat DUMPDIR/*.sql | mysql db_name   # create tables in database

mysqlimport db_name DUMPDIR/*.txt   # load data into tables

比如:

 

cd /usr/local/mysql-8.0.18-linux-glibc2.12-x86_64/data/

mkdir DUMPDIR

chown mysql:mysql DUMPDIR

mysqldump -uroot -poracle --tab=./DUMPDIR test

scp -r DUMPDIR/ root@192.168.1.150:/usr/local/mysql-8.0.18-linux-glibc2.12-x86_64/data/

chown -R mysql:mysql /usr/local/mysql-8.0.18-linux-glibc2.12-x86_64/data/DUMPDIR

mysql -uroot -poracle -e "create database test;"

cat DUMPDIR/*sql | mysql -uroot -poracle test

mysqlimport -uroot -poracle test DUMPDIR/*.txt

注:兩端的服務器需要配置secure_file_priv 環境變量。

 

補充:

有時可能需要拷貝mysql schema,因為mysql schema中標授權表,如果沒有數據庫沒有mysql schema前提下。在導入mysql schema,使用 mysqladmin flush-privileges 使得MySQL Server加載授權表信息。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM