使用mysql命令行導出sql
其實很簡單,只需2個步驟,首先進入mysql命令行,輸入:use 數據庫名,其次輸入:source test.sql 就可以把Test表的數據全部導出來。 www.2cto.com
用mysqldump和source可以使用這種方式導出數據:
mysqldump -urott -P5678 --default-character-set=gb2312 -p -h127.0.0.1 Test test1 > test1.sql
也可以這樣:
mysql -uroot -P5678 --default-character-set=gb2312 -p -h127.0.0.1 -e "select * from Test.test1" > test1.sql (不過這樣要手動建表,當然可以 show create test1得到建表語句)
導入: www.2cto.com
可以這樣(在mysql命令行下)
mysql>use Test;
mysql>source test1.sql;
如果用select的方式得到的文件,應該這樣導入:
mysql>load data infile "test.sql" into table Test.test1;
導入時可以"show processlist\G"查看導入狀態。
有時候會發生錯誤:ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`Test/test1`, CONSTRAINT `xxx` FOREIGN KEY (`AA`) REFERENCES `BB` (`AA`))
這時需要對外鍵約束進行刪除,比如:
alter table cwealinfo drop foreign key `xxx`;
也可以:set foreign_key_checks = 0;
導出和導入時需要注意數據庫的版本,比如從4導到5,最好用4的mysqldump,否則可能會失敗。另外還需要注意字符集問題,如果兩個庫的字符集不同,可能會導致問題,因此導入前最好用“show variables like '%char%'”查看下是否需要調整字符集設置.