Mysql 大量数据导入

时间:2022-03-09 06:13:34

今天试图用heidisql 导入一个150M的数据文件(.sql), 结果报out of memory 错误。在网上搜了很多案例,都没能解决问题。我甚至怀疑是mysql 的default的内存设置的太小了。于是跑到my.ini文件里修改了innodb_buffer_pool_size  为96M * 6的大小。 到heidisql里面再去import,报错信息不会立刻出来了,但是隔了大概一分钟还是出现了 out of memory的错误。

后来一个朋友说,批量导入数据不要用mysql 客户端,都会爆的。那么,用cmd吧,网上搜索了下解决方案:

How to import a SQL file using the command line in MySQL?

A common use of mysqldump is for making a backup of an entire database:

shell> mysqldump db_name > backup-file.sql
You can load the dump file back into the server like this:

UNIX

shell> mysql db_name < backup-file.sql
Same in Windows comand prompt

mysql -p -u[user] [database] < backup-file.sql
PowerShell

C:\> cmd.exe /c "mysql -u root -p db_name < backup-file.sql"
MySQL command line

mysql> use db_name;
mysql> source backup-file.sql;

  我用最后一个方法,mysql -uroot -proot 进入mysql,

然后use databaseName;

  source **.sql;

就会自动将sql文件里的数据导入到指定的databaseName 数据库中。

注意: 这里面有个问题是,必须mysql的当前目录是.sql文件在的目录。有两种办法:

1.  先cd到.sql文件所在的文件夹,在进入mysql,执行source

2.  直接将路径添加在.sql文件的前面,如 source ~/Desktop/**.sql 这样