如何在MySQL数据库中插入超过一百万条记录?

如何在MySQL数据库中插入超过一百万条记录?,mysql,linux,bash,Mysql,Linux,Bash,我有一个sql文件,其中包含超过一百万条insert语句。MySQL管理的官方工具无法打开它,因为它太大了。是否可以使用BASH脚本插入记录 到目前为止我试过这个,但不起作用 while read line do mysql -u root --password=root << eof use dip; $line; eof done < $1 读取行时 做 mysql-u root--password=rootmysql-u root--pa

我有一个sql文件,其中包含超过一百万条insert语句。MySQL管理的官方工具无法打开它,因为它太大了。是否可以使用BASH脚本插入记录

到目前为止我试过这个,但不起作用

while read line
do
    mysql -u root --password=root << eof
    use dip;
    $line;
    eof
done < $1
读取行时
做
mysql-u root--password=root
mysql-u root--password=root
mysql-u root--password=root试试这个:

while read line
do
    mysql -u root --password=root -c "$line"
done < $1
读取行时
做
mysql-u root--password=root-c“$line”
已完成<$1
注:
如果sql包含双引号(
),则必须对其进行转义 如果SQL语句跨越多行,您必须弄清楚这一点

此方法的优点是每一行都有自己的事务,而如果您启动整个文件,它可能会因为更改集太大而导致日志崩溃。请尝试以下操作:

while read line
do
    mysql -u root --password=root -c "$line"
done < $1
读取行时
做
mysql-u root--password=root-c“$line”
已完成<$1
注:
如果sql包含双引号(
),则必须对其进行转义 如果SQL语句跨越多行,您必须弄清楚这一点


这种方法的优点是每一行都有它自己的事务,而如果你启动整个文件,它可能会破坏日志,这是一个非常好的解决方案。我只需要添加
-D dip
来选择我想要的数据库。@Tomas,对了,我只阅读了
mysql
行,因此假设您拥有调用中的所有内容,抱歉。这是一个很好的解决方案。我只需要添加
-D dip
来选择我想要的数据库。@Tomas,对了,我只阅读了
mysql
行,因此假设您已经调用了所有内容,对不起。