单语句执行:username,password,hostname,dbname替换为你的mysql信息。
mysql -uusername -ppassword -hhostname -Ddbname -e "UPDATE table1 SET column1='value1'; UPDATE table2 SET column2='value2';"
同时执行多条语句:并传参
1. 编写bat文件
格式如下:
mysql -u[username] -p[database_name] < /path/to/file.sql --init-command="SET @param1='value1';SET @param2='value2';"
例子:
@echo off
set IP=服务IP(如10.0.2.12)
set localFolder=%~dp0
%localFolder%mysql5.7.40\bin\mysql -uroot -p123456 -h127.0.0.1 -Dtestdb < %localFolder%mysql5.7.40\ip_update.sql --init-command="SET @IP='%IP%';"
localFolder=%~dp0 意思是获取当前bat文件路径。
%localFolder%mysql5.7.40\bin\mysql 意思是指定mysql路径。因为我没设置全局变量,所以需要指定。 设置了全局变量的,此处可以直接是 mysql。
--init-command="SET @IP='%IP%';" 传参
2.编写sql文件
UPDATE sys_oss_config SET endpoint=concat(@IP,':9000') WHERE oss_config_id = 1;
update xxx set field=@IP where key = 1;
文件中的@IP为接收的参数。