有时候我们需要用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下批处理执行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"