mysql快速导入大的sql脚本文件

---------导入大数据到mysql修改点-----------

修改mysql配置

wait_timeout=2880000

interactive_timeout = 2880000

max_allowed_packet = 100M

应用时记住重启数据库哦~~

导入的时候

1.关掉binlog,

2.所有要导入的表改为myisam

3.修改max_allowed_package ,多大根据你的实际情况

因为你已经dump好了,所以这些mysqldump的参数就改不了,记得有个批量插入的参数

根据我的经历,你的7G数据导入时间缩短不止一半,30分钟以内搞定

-----关闭binlog------

1.关闭mysql主从,关闭binlog

# vim /etc/my.cnf  //注释掉log-bin,binlog_format

# Replication Master Server (default)

# binary logging is required for replication

# log-bin=mysql-bin

# binary logging format - mixed recommended

# binlog_format=mixed

然后重启数据库

http://blog.csdn.net/atco/article/details/24259333

--- 修改引擎---

查看MySQL提供什么存储引擎:

mysql> show engines;

查看MySQL当前默认的存储引擎:

mysql> show variables like '%storage_engine%';

查询wpsql库

mysql> use wpsql;

列出当前库所有表名

mysql> show tables;

你要看wp_posts表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):

mysql> show create table wp_posts;

将wp_posts表修为InnoDB存储引擎(也可以此命令将InnoDB换为MyISAM):

mysql> ALTER TABLE wp_posts ENGINE=INNODB;

如果要更改整个数据库表的存储引擎,一般要一个表一个表的修改,比较繁琐,可以采用先把数据库导出,得到SQL,把MyISAM全部替换为INNODB,再导入数据库的方式。

转换完毕后重启mysql

> service mysqld restart

mysql -uroot -p123 aa -e "select * from a where ..." > r:\temp\123.txt
mysqldump -uroot -p123 databasename -w"id in (1,2)" >r:\temp\test.text
OR
用SELECT INTO OUTFILE

mysql -hhost -uuser -ppwd scm_sys -e "select com_uid, substring_index(ADDRESS,'|',1) as state from com_detail">/home/tmp/com_data.sql

导出的数据通过 dbvisual  来做导入操作

dbvisual   import table data导入数据还是挺方便

相关推荐