0
点赞
收藏
分享

微信扫一扫

windows下bat批处理执行Mysql的sql语句

三次方 2023-12-03 阅读 34

有时候我们需要用bat来定时执行mysql那么就可以参考下面的代码

 直接上代码:


@ECHO OFF  

SET dbhost=主机名(例如:127.0.0.1)

SET dbuser=用户名(例如:root)

SET dbpasswd=用户密码(例如:root)

SET dbName=数据库名称(例如:test)

SET sqlpath=%~dp0(此语句可以保证.bat同级目录下的.sql文件能被找到)

set sqlfile=update.sql(需要执行执行sql的文件)


进入mysql安装路径的bin目录下,如果配置了环境变量则不需要此语句


(例如:cd /d C:\Program Files\MySQL\MySQL Server 5.5\bin)


::执行SQL脚本


mysql -h%dbhost% -u%dbuser% -p%dbpasswd% < %sqlpath%%sqlfile% --default-character-set=utf8


ECHO 完成!

PAUSE


@ECHO Done!

windows下执行sql文件-批量执行sql语句

新建一个txt文件,里面内容如下,改为.cmd文件,点击运行即可:

rem MySQL_HOME 本地MySQL的安装路径
rem host mysql 服务器的ip地址,可以是本地,也可以是远程
rem port mysql 服务器的端口,缺省为3306
rem user password 具有操作数据库权限的用户名和密码,如root
rem default-character-set 数据库所用的字符集
rem database 要连接的数据名,这里用的test
rem test.sql 要执行的脚本文件,这里为test.sql
rem mysql 后面的应该放在一行。
set MySQL_HOME=C:\mysql-4.1.10-win32
set PATH=%MySQL_HOME%\bin;%PATH%

mysql --host=192.168.0.66 --port=3306 --user=root --password=123 --default-character-set=utf8 test<test.sql

如图所示

windows下bat批处理执行Mysql的sql语句_MySQL

Windows下批处理执行MySQL脚本文件

一、

@echo off
Setlocal enabledelayedexpansion
::CODER BY Mark_Li POWERD BY iBAT 1.6
cd "C:\Program Files\MySQL\MySQL Server 5.5\bin"
:: 数据库名称
@set db=hrms
:: 用户名
@set userName=root
:: 密码
@set password=
:: 要执行的sql脚本
@set sqlpath="C:\Program Files\MySQL\MySQL Server 5.5\test_hrms.sql"
:: 连接MySQL数据库并执行sql脚本 -f 脚本执行过程中,出现错误继续执行 --default-character-set指定导入数据的编码(与数据库编码相同)
mysql -f -u %userName% --password=%password% %db% < %sqlpath% --default-character-set=gbk
:: 执行完成后,不立刻关闭dos窗口

pause

二、设置超时命令

在my.ini文件下加入

wait_timeout=2880000
interactive_timeout = 2880000
max_allowed_packet = 100M

三、如果要执行多个SQL脚本

将test_hrms.sql替换为source "C:\Program Files\MySQL\MySQL Server 5.5\test_hrms.sql" "C:\Program Files\MySQL\MySQL Server 5.5\test_hrms2.sql"

"C:\Program Files\MySQL\MySQL Server 5.5\test_hrms3.sql"





快速常用的方式

使用cmd命令执行(windows下)
【MySQL的bin目录】\mysql –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】,示例:
D:\mysql\bin\mysql –uroot –p123456 -Dtest<d:\test\ss.sql
注意:
A、如果在sql脚本文件中使用了use 数据库,则-D数据库选项可以忽略
B、如果【Mysql的bin目录】中包含空格,则需要使用“”包含,如:“C:\Program Files\mysql\bin\mysql” –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】

成功的代码:

set errorlevel=0
set path_bin_mysql="C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql"
set user_mysql=root
set password_mysql=root
%path_bin_mysql% -u%user_mysql% -p%password_mysql% <mysql.sql

遇到的坑:

  1. 引号必须把mysql的安装路径到\bin\mysql都包进去,否则报错找不到意思为“名为bin\mysql的database”;
  2. mysql执行sql文件的这种方式,-u和-p后都紧跟用户名和密码,不能有空格;


举报

相关推荐

0 条评论