mysql数据库批量执行sql文件对数据库进行操作【windows版本】
起因: 因工作需要,在本机测试环境升级mysql数据库,需逐条执行mysql数据库的sql文件对数据库进行升级,因此找了些关于mysql的文章,对批量升级数据库所需的sql文件进行升级。
整理思路:
- 首先,需要对所需升级的sql所在目录的sql文件进行遍历。生成新的批量执行sql文件。想到是windows系统安装的mysql,首先想到使用bat进行sql文件的生成;
- 生成sql文件后,还需要使用bat文件连接到数据库,并使用新生成的sql文件进行升级。
- 想到升级的过程中还有可能字符集出现问题,因此需要使用cmd登陆mysql控制台,对编码进行查看。如编码格式不正确,还需调整编码格式。
因此,需对这些思路进行实践验证。验证后,整理出操作过程,分享给广大猿友。
实现过程:
- 遍历文件并生成sql文件的 bat脚本文件如下:
@echo off & setlocal EnableDelayedExpansion
@set source=\.
for /f "delims=" %%i in ('"dir /a/s/b/on *.sql"') do (
set file=%%~fi
set file=!file:/=/!
echo \.
echo %source% !file! >> batch.sql
)
将上方的bat脚本,粘贴到txt文件中,并重命名,这里重命名为: creatsql.bat
- 将creatsql.bat放在sql文件所在目录。执行bat文件后,会得到batch.sql文件。生成的文件内容如下:
\. D:\gzkj\mysql\patchScipt\4.7.25\aa.sql
\. D:\gzkj\mysql\patchScipt\4.7.25\bb.sql
\. D:\gzkj\mysql\patchScipt\4.7.25\cc.sql
\. D:\gzkj\mysql\patchScipt\4.7.25\dd.sql
\. D:\gzkj\mysql\patchScipt\4.7.25\ee.sql
\. D:\gzkj\mysql\patchScipt\4.7.25\ff.sql
\. D:\gzkj\mysql\patchScipt\4.7.25\gg.sql
\. D:\gzkj\mysql\patchScipt\4.7.25\hh.sql
\. D:\gzkj\mysql\patchScipt\4.7.25\ii.sql
- 分析执行文件可能会存在编码格式不正确的问题,因此在CMD窗口执行查看数据库编码格式如下:

- 查看到有字符集编码格式不正确,因此需要调整字符集编码格式,调整的编码格式的配置放在新生成的batch.sql文件内,然后batch.sql文件如下:
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_results=utf8;
\. D:\gzkj\mysql\patchScipt\4.7.25\aa.sql
\. D:\gzkj\mysql\patchScipt\4.7.25\bb.sql
\. D:\gzkj\mysql\patchScipt\4.7.25\cc.sql
\. D:\gzkj\mysql\patchScipt\4.7.25\dd.sql
\. D:\gzkj\mysql\patchScipt\4.7.25\ee.sql
\. D:\gzkj\mysql\patchScipt\4.7.25\ff.sql
\. D:\gzkj\mysql\patchScipt\4.7.25\gg.sql
\. D:\gzkj\mysql\patchScipt\4.7.25\hh.sql
\. D:\gzkj\mysql\patchScipt\4.7.25\ii.sql
- 最后需要编写升级这些sql所需的bat脚本,脚本如下:
@echo off
:: 指定MySQL安装路径
C:
cd C:\Program Files\MySQL\MySQL Server 5.6\bin
:: 数据库名称
@set db=dbname
:: 用户名
@set userName=username
:: 密码
@set password=aaa123456
:: 获取文件夹所在绝对路径
@set basePath=%~dp0
:: 要执行的sql脚本
@set sqlpath=%basePath%\batch.sql
:: 连接MySQL数据库并执行sql脚本 -f 脚本执行过程中,出现错误继续执行 --default-character-set指定导入数据的编码(与数据库编码相同)
mysql -f -u %userName% --password=%password% %db% < %sqlpath% --default-character-set=gbk
:: 执行完成后,不立刻关闭dos窗口
pause
- 将上方bat脚本内容放在txt文件中,重命名,这里重命名为:update.bat,然后将update.bat同样放在sql所在目录下,点击执行update.bat文件,执行结果如下:

- 可以看到,这里有执行报错的信息,证明批量执行是可以的。
谨以此文分享给大家,相信也能够帮到想要如此操作,却无从下手的同仁们。
mysql数据库批量执行sql文件对数据库进行操作【windows版本】的更多相关文章
- 批量执行SQL文件
原文:批量执行SQL文件 摘要:很多时候我们在做系统升级时需要将大量的.sql文件挨个执行,十分不方便.而且考虑到执行顺序和客服的操作方便性,能不能找到一种简单的方法来批量执行这些sql文件呢? 主要 ...
- 利用osql/ocmd批处理批量执行sql文件
原文:利用osql/ocmd批处理批量执行sql文件 上周在测试环境建了几十张表,保存了.sql文件,准备在正式环境重建的时候懒得一个个打开建了,做一在网上搜寻了一下,果然有简单点的方法. 利用osq ...
- shell调用sqlplus批量执行sql文件
在最近的工作中,经常需要批量执行一些DML, DDL, PL/SQL语句或导入一些Function, Procedure.因为support的国家比较多,常常需要一个登陆到一个国家的数据库上执行完成后 ...
- mysql批量执行sql文件
1.待执行的sql文件为1.sql.2.sql.3.sql.4.sql等 2.写一个batch.sql文件: source .sql; source .sql; source .sql; source ...
- php+mysql将大数据sql文件导入数据库
<?php $file_name = "d:test.sql"; $dbhost = "localhost"; $dbuser = "root& ...
- PLSQL批量执行SQL文件方法
当需要执行多个sql文件,或者某个脚本中,sql语句数量很多时,手动逐个逐条执行不是一个明智的选择. PLSQL为我们提供了便捷的工具.使用方式如下: [工具]--[导入表]--[SQL插入]--[选 ...
- 怎么直接在MySQL客户端上执行SQl文件?
\. 直接把sql文件拖进去就行了,(斜杠+.+空格+sql文件)
- MySQL命令行下执行sql文件(sql脚本)
在mysql命令行下执行sql文件(sql脚本) mysql> source sql文件完整路径 如: mysql> source D:\\MySQL\\create.sql 文 ...
- 使用Python批量修改数据库执行Sql文件
由于上篇文章中批量修改了文件,有的时候数据库也需要批量修改一下,之前的做法是使用宝塔的phpMyAdmin导出一个已经修改好了的sql文件,然后依次去其他数据库里导入,效率不说极低,也算低了,且都是些 ...
随机推荐
- 为什么RChain区块链上一定要有REV?
RChain区块链网络上一定要有REV吗?它的作用是什么?在这篇文章里,RChain创始人Mr. Greg Meredith做了详细解读,便于业界和社区对RChain网络有更深入的认识. 作者:Gre ...
- Docker和Kubernetes
Docker和Kubernetes Docker Docker是一个容器的开放平台,但它不是最早的.自20世纪70年代以来,容器平台一直存在.他们的开发可以追溯到Unix中的chroot系统调用.在2 ...
- iOS--->运行程序屏幕上下有黑边
iOS--->运行程序屏幕上下有黑边 原因是LaunchImage没有设置好,图片等尺寸没有和对应的手机屏幕大小适配导致. 解决方法 就是要增加启动图片,把屏幕拉伸,匹配好每个机型的屏幕大小,这 ...
- Java框架-MyBatis三剑客之MyBatis Generator(mybatis-generator MBG插件)详解
生成器设计思路: 连接数据库 -> 获取表结构 -> 生成文件 1 下载与安装 官网文档入口 最方便的 maven 插件使用方式 贴至pom 文件 2 新建配置文件 填充配置信息(官网示例 ...
- 每日一技|巧用 Telnet 调试 Dubbo 服务
个人博客地址 studyidea.cn,点击查看更多原创文章 0x00. 前言 想象这样一个场景,线上某个服务突发异常,导致上游服务调用异常,数据处于中间状态.服务恢复之后,我们需要修复这笔数据至正常 ...
- 小白学Java:RandomAccessFile
目录 小白学Java:RandomAccessFile 概述 继承与实现 构造器 模式设置 文件指针 操作数据 读取数据 read(byte b[])与read() 追加数据 插入数据 小白学Java ...
- MySQL5.7 中的query_cache_size
摘自:http://jackyrong.iteye.com/blog/2173523 1 原理 MySQL查询缓存保存查询返回的完整结果.当查询命中该缓存,会立刻返回结果,跳过了解析,优化和执行 ...
- WPF另类实现摄像头录像
WPF中使用第三方控件来直接进行录像的控件没有找到(aforgenet好像不维护了?WPFMediaKit好像只能实现摄像头拍照.收费的控件没有使用,不做评论.) 通过百度(感谢:https://ww ...
- python写的用WMI检测windows系统信息的脚本
脚本如下: #!/usr/bin/env python #coding:utf- import wmi import sys,time,platform def get_system_info(os) ...
- linux入门系列10--firewalld防火墙管理
上一篇文章学习了用户及文件相关权限,本篇继续学习防火墙技术. 防火墙作为公网与内网之间的保护屏障,对系统至关重要.防火墙又分为硬件防火墙和软件防火墙,主要功能都是依据设置的策略对穿越防火墙的流量进行过 ...