加入收藏 | 设为首页 | 会员中心 | 我要投稿 航空爱好网 (https://www.52kongjun.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

【实践-MySQL】在Linux服务器中后台执行sql脚本导入大量数据

发布时间:2022-10-24 13:32:00 所属栏目:MsSql教程 来源:网络
导读: 在服务器中后台执行sql脚本 上传文件
将 数据库结构ddl.sql文件和数据data.sql文件都上传到服务器的/home目录中。
ddl.sql文件:
/*!40101 SET NAMES utf8 */;
CREATE DATABASE `db_test`;

在服务器中后台执行sql脚本 上传文件

将 数据库结构ddl.sql文件和数据data.sql文件都上传到服务器的/home目录中。

ddl.sql文件:

/*!40101 SET NAMES utf8 */;
CREATE DATABASE `db_test`;
use db_test;
CREATE TABLE `table_test` (
  `id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '主键',
  `create_time` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  `update_time` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE,
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测试表';

data.sql文件:

/*!40101 SET NAMES utf8 */;
insert into table_test (id) VALUES (1);

前台执行 创建数据库 和 表

# 登陆数据库
# -u表示用户名、-h表示ip地址、-P表示端口、-p表示密码登陆
mysql -u root -h 127.0.0.1 -P 3307 -p
# 输入密码
123456
# 执行sql文件
source /home/ddl.sql

导入数据

# 登陆数据库
# -u表示用户名、-h表示ip地址、-P表示端口、-p表示密码登陆
mysql -u root -h 127.0.0.1 -P 3307 -p
# 输入密码
123456
# 执行sql文件
source /home/data.sql

后台执行

注意:后台执行有个问题是,如果sql文件中的语句执行出现报错,则会停止,不会继续执行后面的sql语句。这里有个坑!!!

创建数据库 和 表

准备脚本文件mssql数据库导入,在Linux控制台中执行下面的命令

# 创建脚本文件
vim importddl.sh
# 进入vim编辑器,按i进入编辑模式,输入如下命令
# -u表示用户名、-h表示ip地址、-P表示端口、
# -p表示密码(注意,-p和密码之间不能用空格隔开)
# 
mysql -u root -h 127.0.0.1 -P 3307 -ptest@2022 <ddl.sql
# 退出编辑模式 Esc,保存并退出vim编辑器 :wq!
# 进入指定目录
cd /home/

给脚本文件添加权限

chmod u+x importddl.sh

用nohup命令执行脚本

一定要加“&”,才能脚本放到后台运行

nohup执行后系统会在控制台打印出命令执行的PID

然后nohup会默认在/home目录下创建日志文件nohup.out,可以方便查看

nohup ./importddl.sh &

根据PID使用ps命令可以查看脚本是否还在执行

ps -aux | grep 297042

正在执行中:

只有一行数据,执行结束:

导入数据

准备脚本文件

# 创建脚本文件
vim importdata.sh
# 进入vim编辑器,按i进入编辑模式,输入如下命令
# --database表示使用指定数据库
mysql -u root -h 127.0.0.1 -P 3307 -ptest@2022 --database=ngpr_db_test 
# 退出编辑模式 Esc,保存并退出vim编辑器 :wq!
# 进入指定目录
cd /home/

给脚本文件添加权限

chmod u+x importdata.sh

用nohup命令执行脚本

一定要加“&”,才能脚本放到后台运行

nohup执行后系统会在控制台打印出命令执行的PID

nohup ./importdata.sh &

根据PID使用ps命令可以查看脚本是否还在执行

ps -aux | grep 33355

等待数据导入完成即可~

(编辑:航空爱好网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!