通过脚本使linux后台导入sql文件
一个4g的sql文件导入需要好几个小时
soucre sql路径
执行时间太长了,遇到xshell关闭只能重来
nohup mysql -uroot -p123456 tests < /data/sqls/tests.sql &
或者
# 创建脚本
[root@iZbp1ajqzkbhcq19bdoswlZ sqls]# vim import.sh
# 脚本内容
# mysql -u root --password=你的密码 --database=你的数据库 <full.sql;
# exit;
# 后台执行
[root@iZbp1ajqzkbhcq19bdoswlZ sqls]# nohup ./import.sh >./mysql_output.log 2>&1 &
[1] 90151
# 查询是否执行成功
[root@iZbp1ajqzkbhcq19bdoswlZ sqls]# ps aux |grep mysql
# 退出xshell
[root@iZbp1ajqzkbhcq19bdoswlZ sqls]# exit
logout
# 重连,重新查询脚本是否在执行
ps aux |grep mysql
当前导入4G大小的sql文件大概需要七到八个小时
优化方法:
# 登陆mysql
mysql -u root -p密码
CREATE DATABASE 数据库名;
set sql_log_bin=OFF;//关闭日志
set autocommit=0;//关闭autocommit自动提交模式
set names utf8;
use 数据库名;
开启事务
START TRANSACTION;
引入SQL文件
source 文件的路径;
成功后事务提交
COMMIT;
这样一个12G的sql文件大概只要半个小时
最好的方法是:先分别导出建表语句和数据语句,然后手工建表,删除外键和索引,然后再导入数据这样就会非常快。
导出结构不导出数据
mysqldump --opt -d -u root -p密码 数据库名> xxx.sql
或者mysqldump --no-data -u username -p* database_name > xxx.sql
导出低于8.0版本的MySQL数据库时,会出现Unknown table ‘column_statistics’ in information_schema的错误. 加选项--column-statistics=0就可以了
mysqldump --opt -d --column-statistics=0 -u root -p密码 数据库名> xxx.sql
导出数据不导出结构
mysqldump --opt -t -uroot -p密码 数据库名 > xxx.sql
备注:导出、导入数据用MYSQLDUMP,不要用NAVICAT。
参考文档:https://blog.csdn.net/ydyuse/article/details/110109312
参考文档:https://blog.csdn.net/chiheyi1036/article/details/100722381
浙公网安备 33010602011771号