shell腳本執行mysql語句出現的問題

shell腳本執行mysql語句出現的問題,問羣裏的大牛的到解答,是單引號問題,改爲雙引號便可mysql

#小提示(對本主題沒什麼關聯):ubuntu目前使用的是dash,致使一些for(()函數沒法正常執行,sql

sudo dpkg-reconfigure  dashshell

選擇NO,就改會bash了
ubuntu

一。腳本內容以下: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

三.解決方式:code

  sql語句中的COMMENT的內容須要雙引號:server

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";'
相關文章
相關標籤/搜索