一般情况下,SQL文件数据量不大,我比较喜欢登录到MySQL中,然后使用source命令执行,假如SQL文件比较大,在执行的过程中万一出现网络波动,远程连接mysql断开了,那就很尴尬了,所以最好是后台执行,使用nohup xxx &
这个xxx可以直接使用命令行,或者写一个shell脚本,我习惯把命令行写入一个简单的bash shell脚本文件里去执行。
以下是使用脚本导入数据的主要步骤:
1. 编写 SQL 文件,包含要导入的数据和 SQL 语句,比如mysqldump下的sql文件。
2. 使用 `mysql` 命令执行 SQL 文件,将数据导入到 MySQL 数据库中。
3. 查看执行的过程,以便及时发现和解决错误。
下面是具体的操作步骤:
1. 编写 SQL 文件需要编写一个包含要导入的数据和 SQL 语句的 SQL 文件。例如,假设要导入一个名为 `mydatabase` 的数据库,可以编写以下 SQL 文件:
USE mydatabase;
INSERT INTO mytable (column1, column2, column3) VALUES (1, 'foo', 'bar');
INSERT INTO mytable (column1, column2, column3) VALUES (2, 'baz', 'qux');
INSERT INTO mytable (column1, column2, column3) VALUES (3, 'quux', 'corge');
在上述 SQL 文件中,假设有一个名为 `mytable` 的表,包含三个列 `column1`、`column2` 和 `column3`。该文件包含了多个 `INSERT INTO` 语句,用于向该表中插入数据。
2. 使用 `mysql` 命令执行 SQL 文件使用 `mysql` 命令执行 SQL 文件,将数据导入到 MySQL 数据库中。例如,假设 SQL 文件名为 `data.sql`,编写一个简单的shell脚本source.sh:
#!/bin/bash
mysql -h mysqlhost -u username -p mydatabase < data.sql
在上述脚本的命令中,`-h`选项是MySQL的地址,比如192.168.1.2,`-u` 选项指定要使用的 MySQL 用户名,`-p` 选项表示需要输入密码才能连接到 MySQL 数据库,`mydatabase` 是要导入数据的数据库名称,`data.sql` 是要导入的 SQL 文件。
然后命令行执行下nohup sh source.sh &
mysql -h mysqlhost -u username -p mydatabase < data.sql是没有详细信息输出的,假如执行的过程中发生了报错,我们是不知道的,所以我们需要能显示具体的执行过程。可以使用 `-v` 选项来打开详细模式。在执行过程中,`mysql` 命令将会输出一些信息,例如正在执行的 SQL 语句、已经导入的行数等。如果出现错误,也会在输出中显示错误信息。
mysql -u username -p mydatabase < data.sql -v
在上述命令中,`-v` 选项表示要打开详细模式。
在执行过程中,我们就可以随时检查下nohup的信息,知道具体的执行过程了。可以使用tail -f nohup查看。
,