mysql中source执行脚本(大数据量)慢解决

该文详细介绍了如何登录MySQL服务器,创建数据库,设置参数如关闭二进制日志和自动提交,然后使用事务导入SQL文件,并在完成后恢复默认配置。此外,还提供了一种加速SQL导入的方法,涉及关闭外键检查和调整InnoDB相关参数。

1. 登录MySQL

进入内网服务器,登录mysql,输入密码即可。

1

mysql -u root -p

2. 创建数据库

根据需求创建数据库

1

createdatabase数据库名;

3. 设置参数

sql_log_bin 关闭二进制日志

autocommit 关闭事务自动提交

1

2

setsql_log_bin=off;

setautocommit=0;

4. 使用数据库

1

use 数据库名;

5. 开启事务

1

start transaction;

6. 导入sql

1

source 文件.sql;

7. 手动提交事务

1

commit;

8. 改回配置

1

2

setsql_log_bin=on;

setautocommit=1;

附mysql加速source导入数据

1

2

3

4

5

6

7

8

9

10

11

12

13

14

# 进入mysql中执行如下

SETGLOBALforeign_key_checks=0;

SETGLOBALunique_checks=0;

SETGLOBALinnodb_flush_log_at_trx_commit=0;

SETGLOBALsync_binlog=0;

-- 你的sql语句1

-- 你的sql语句2

-- 你的sql语句3

SETGLOBALforeign_key_checks=1;

SETGLOBALunique_checks=1;

SETGLOBALinnodb_flush_log_at_trx_commit=1;

SETGLOBALsync_binlog=1;

在本地部署 MySQL 数据库并执行 SQL 脚本导入数据可按以下步骤操作: ### 准备工作 - 按需准备 SQL 文件。 - 若使用 Docker 部署,要确保 Docker 已正确安装并启动。 ### 部署 MySQL 数据库 #### 使用 Docker 部署 若使用 Docker 部署 MySQL 数据库,可按如下操作: 1. 拉取 MySQL 镜像: ```bash docker pull mysql ``` 2. 运行 MySQL 容器: ```bash docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12345 mysql ``` 此命令会创建并启动一个名为 `mysql` 的 MySQL 容器,将容器的 3306 端口映射到宿主机的 3306 端口,同时设置 root 用户的密码为 `12345`。 ### 导入 SQL 脚本 #### 若 SQL 文件需先创建相关数据库 1. 拷贝 SQL 文件到 MySQL 容器中: ```bash docker cp yyy.sql mysql:/yyy.sql ``` 2. 创建数据库: ```bash docker exec -it mysql mysql -h 127.0.0.1 -uroot -p12345 ``` 在 MySQL 控制台中执行以下命令: ```sql create database yyy; use yyy; ``` 3. 登陆控制台执行 `source` 命令: ```sql source yyy.sql ``` 若 SQL 文件内容较多,会看到大量的 `ok` 信息 [^1]。 #### 通用步骤 1. 将 SQL 文件上传到服务器(宿主机)。 2. 将 SQL 文件复制进容器中: ```bash docker cp your_file.sql mysql:/your_file.sql ``` 3. 进入容器内部: ```bash docker exec -it mysql bash ``` 4. 进入数据库: ```bash mysql -h 127.0.0.1 -uroot -p12345 ``` 5. 创建数据库: ```sql create database your_database; ``` 6. 切换数据库: ```sql use your_database; ``` 7. 导入 SQL 文件: ```sql source your_file.sql ``` [^2]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值