本文轉自
如何導出和導入mysql數據(數據遷移)
這是其中一種方法,非常簡單
1. 導出數據庫數據
mysqldump -uroot -p dp_db > dumpout.sql
其中 root是賬戶名
dp_db是需要導出的數據庫名稱
dumpout.sql存儲導出的數據
2. 將導出的數據dumpout.sql放到你的目標機器上(如果是遠程目標機器的話,直接將dunmpout.sql copy到目標機器就行)。這里假設cp到主目錄下~/
3. 在目標機器的數據庫里建立新數據庫,這里建立名為dp_db_bak的數據庫
mysql> create database dp_db_bak
4. 向dp_db_bak數據庫導入數據
mysql -uroot -p dp_db_bak < ~/dumpout.sql
其中 root是賬戶名
db_db_bak是新數據庫
~/dumpout.sql是第一步導出的數據
P.S. 如果在導入導出數據的時候遇到文件太大異常退出的情況,可使用split/cat來進行文件的分割和合並
mysqldump -uroot -p dp_db | split -b 10m - tempfile
cat all_tempfile > targetfile
其他方法:
Mysql source命令在導入大數據時顯得非常有用。雖然Mysql Administrator軟件也不錯,但就穩定性和效率性來說還是source占優。
使用方法:
Windows下將sql數據庫備份拷貝到磁盤目錄如:D:\db.sql,cmd進入命令行。
1、先使用命令mysql -uroot -p登陸mysql服務器
2、然后執行相關命令導入數據。
mysql> set names utf8; //設置編碼
mysql> source D:\db.sql; //導入數據
ok,完成。當然數據庫備份用Mysql Administrator是非常方便的
Mysql導出表結構及表數據 mysqldump用法
命令行下具體用法如下: mysqldump -u用戶名 -p密碼 -d 數據庫名 表名 腳本名;
1、導出數據庫為dbname的表結構(其中用戶名為root,密碼為dbpasswd,生成的腳本名為db.sql)
mysqldump -uroot -pdbpasswd -d dbname >db.sql;
2、導出數據庫為dbname某張表(test)結構
mysqldump -uroot -pdbpasswd -d dbname test>db.sql;
3、導出數據庫為dbname所有表結構及表數據(不加-d)
mysqldump -uroot -pdbpasswd dbname >db.sql;
4、導出數據庫為dbname某張表(test)結構及表數據(不加-d)
mysqldump -uroot -pdbpasswd dbname test>db.sql;
指定分隔符導出數據(貌似必須在本機才能正常執行),步驟:
1. cd /tmp
2. mkdir mysqldata
3. chown mysql:mysql mysqldata
4. mysqldump -h127.0.0.1 -uroot -p123456 -T/mysqldata/ --fields-terminated-by=@@, dbname tablename
1、導出數據庫為dbname的表結構(其中用戶名為root,密碼為dbpasswd,生成的腳本名為db.sql)
mysqldump -uroot -pdbpasswd -d dbname >db.sql;
2、導出數據庫為dbname某張表(test)結構
mysqldump -uroot -pdbpasswd -d dbname test>db.sql;
3、導出數據庫為dbname所有表結構及表數據(不加-d)
mysqldump -uroot -pdbpasswd dbname >db.sql;
4、導出數據庫為dbname某張表(test)結構及表數據(不加-d)
mysqldump -uroot -pdbpasswd dbname test>db.sql;
指定分隔符導出數據(貌似必須在本機才能正常執行),步驟:
1. cd /tmp
2. mkdir mysqldata
3. chown mysql:mysql mysqldata
4. mysqldump -h127.0.0.1 -uroot -p123456 -T/mysqldata/ --fields-terminated-by=@@, dbname tablename