发布网友 发布时间:2022-04-08 08:13
共3个回答
懂视网 时间:2022-04-08 12:35
shell脚本执行mysql语句出现的问题,问群里的大牛的到解答,是单引号问题,改成双引号即可
#小提示(对本主题没什么关联):ubuntu目前使用的是dash,导致一些for(()函数无法正常执行,
sudo dpkg-reconfigure dash
选择NO,就改会bash了
一。脚本内容如下:
#/bin/bash hostname=‘192.168.2.52‘ port=3306 username=‘root‘ password=‘123456‘ #dbname=‘‘ #-----sql cmd--------------------------- sql_cmd=‘ALTER TABLE `mysql`.`user` ADD COLUMN `test` VARCHAR(1) NULL COMMENT ‘test‘ AFTER `t3`;‘ sql_cmd_02=‘show tables;‘ sql_cmd_03=‘ALTER TABLE `mysql`.`user` ADD COLUMN `test3` VARCHAR(1) NULL COMMENT ‘操作系统名test_03‘;‘ sql_cmd_04=‘select * from `mysql`.`user`;‘ sql_cmd_05=‘ALTER TABLE `mysql`.`user` ADD COLUMN `test3` VARCHAR(1) NULL COMMENT ‘操作系统名test_03‘;‘ mysql -h${hostname} -P${port} -u${username} -p${password} -e "${sql_cmd_03}"
二.报错内容:
t
kkk@zabbix:~$ sh mysql-tb.sh ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘操作系统名test_03‘ at line 1
三.解决方式:
sql语句中的COMMENT的内容需要双引号:
ALTER TABLE `mysql`.`user` ADD COLUMN `test3` VARCHAR(1) NULL COMMENT ‘操作系统名test_03‘;‘ 改成: ALTER TABLE `mysql`.`user` ADD COLUMN `test3` VARCHAR(1) NULL COMMENT "操作系统名test_03";‘
shell脚本执行mysql语句出现的问题
标签:
热心网友 时间:2022-04-08 09:43
为什么不直接在脚本里面执行mysql命令,然后加上-e选项来执行sql热心网友 时间:2022-04-08 11:01
result=`mysql -h remotehost -u root -ppassword << EOF