最近在数据库更新方面遇到点问题,于是写了个小脚本来批量更新某某个字段的脚本
代码如下:创建新文件:xxx.sh
注:以下带“字段”请改为表名里面需要修改的字段
以下带“表名”请改为需要修改的表名
以下带“数据用户名”、“数据库名”、“密码”请改为自己的数据库名及密码
#!/bin/bash # 目标 字段 target_字段='123456' //这里改为你需要替换的内容,这段需要改为要改的字段 # 连接数据库并查询当前表 current_字段=$(mysql -u 数据库用户名 -p密码 数据库名 -sN -e "SELECT 字段 FROM 表名;") //将“表名”改为你数据库的表名 # 检查当前 “字段” 是否等于目标 “字段” if [ "$current_字段" != "$target_字段" ]; then //将字段改为表名里的字段,如:userid、id、pass等等 # 如果不相等,执行更新语句 mysql -u 数据库用户名 -p密码 数据库名 -e "UPDATE 表名 SET 字段 = '$target_字段';" //同上一样修改字段 echo "字段 已更新为 $target_字段" //将两处字段改为你表名里需要修改的字段 else # 如果相等,输出提示信息 echo "字段 已经是目标值,无需更新。" //将字段改为你表名里需要修改的字段 fi
用.my.cnf连接数据库,试过单独在shell脚本加数据库密码,拒绝访问,所有改用.my.cnf连接数据库
再xxx.sh目录创建一个名为“.my.cnf”的文件,写入以下代码:
[client] user=数据库用户名 //改为你数据库用户名 password=密码 //改为你数据库密码
然后再终端执行以下shell命令
请根据自己的目录来执行,比如我的目录为:/www/wwwroot/xxxxx/xxx
使用bash命令执行: bash /www/wwwroot/xxxxx/xxx/xxx.sh //这里请改为你xxx.sh所在目录 [root@xxxxx ~]# bash /www/wwwroot/xxxxx/xxx/xxx.sh
这样就大功告成了,不算什么高科技,
评论留言