今天试图用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 这样