LINUX.ORG.RU

Bash script mysql

 ,


0

1

Привет есть скрипт который должены выполнять mysql операции на другом хосте, но он не работает, посмотрите пожалуйста:


ssh -T $user@$slave_host << EOF

Q1="create database $Mysql_base;"
Q2="CHANGE MASTER TO MASTER_HOST='$master_host', MASTER_USER='$slave_user', MASTER_PASSWORD='$passwd', MASTER_PORT=3306,MASTER_LOG_FILE='$FILE', MASTER_LOG_POS='$POSITION', MASTER_CONNECT_RETRY=10;"
Q3="use $Mysql_base; \. $pwd/$Mysql_base.sql;"
Q4="start slave;"
SQL="${Q1}${Q2}${Q3}${Q4}"
sudo mysql -uroot -p$passwd -e "$SQL"
EOF

Ответ на: комментарий от ziemin

Не данных в переменных:

+ Q1='create database zabbix;'
+ Q2='CHANGE MASTER TO MASTER_HOST='\''192.168.159.130'\'', MASTER_USER='\''rep'\'', MASTER_PASSWORD='\''111111'\'', MASTER_PORT=3306,MASTER_LOG_FILE='\''mysql-bin.000007'\'', MASTER_LOG_POS='\''107'\'', MASTER_CONNECT_RETRY=10;'
+ Q3='use zabbix; \. /zabbix.sql;'
+ Q4='start slave;'
+ SQL=
+ sudo mysql -uroot -p111111 -e ''

maison999
() автор топика
Ответ на: комментарий от maison999

Кстати, на будущее. По идее кавычки скрывают концы строк. Можно было так:

<<EOF ssh -T $user@$slave_host
sudo mysql -uroot -p$passwd -e "
create database $Mysql_base;
CHANGE MASTER TO
  MASTER_HOST='$master_host',
  MASTER_USER='$slave_user',      
  MASTER_PASSWORD='$passwd',   
  MASTER_PORT=3306,MASTER_LOG_FILE='$FILE', 
  MASTER_LOG_POS='$POSITION',
  MASTER_CONNECT_RETRY=10;

use $Mysql_base;

\. $pwd/$Mysql_base.sql;

start slave;"
EOF

ziemin ★★
()
Последнее исправление: ziemin (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.