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导入数据还是挺方便