一、mysqldump(适合数据量少的导出导入)
1、导出
mysqldump -h 127.0.0.1 -P 3306 -uroot -p database > /root/test.sql #导出库 mysqldump -t datebase -h 127.0.0.1 -P 3306 -uroot -p table1 table2 table3 > /root/test.sql #导出表
2、导入
mysql -h 127.0.0.1 -P 3306 -uroot -p test < /root/test.sql
二、SELECT * INTO OUTFILE & LOAD DATA INFILE(适合数据量大的导入导出)
1、导出
SELECT * INTO OUTFILE '/home/database/data.txt' FIELDS TERMINATED BY ',' FROM <code>table</code>;
2、导入
LOAD DATA INFILE '/home/database/data.txt' INTO TABLE <code>test</code> FIELDS TERMINATED BY ',';
3、错误信息
错误一: 1290 – The MySQL server is running with the –secure-file-priv option so it cannot execute this statement > 时间: 0.001s
原因: 安装MySQL的时候限制了导入与导出的目录权限
查看secure_file_priv该变量的设置:
SHOW GLOBAL VARIABLES LIKE '%secure%';
选项说明:
secure_file_prive = null #限制mysqld 不允许导入导出
secure_file_priv = /var/lib/mysql-files/ #限制mysqld的导入导出只能发生在/var/lib/mysql-files/目录下
secure_file_priv = ” #不对mysqld的导入导出做限制
解决办法:
修改mysql的my.ini配置文件
[mysqld] secure_file_priv=''
然后重启mysql
4、注意
这种方式的导入导出不会导出表结构
导入时一定要先把这张表的外键和索引全部去除,不然还是会非常耗时