...
Блок кода | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#!/bin/bash MYSQL_USER="<mysql_user>" MYSQL_PASSWORD="<mysql_password>" if ! lockfile-create --use-pid -r 5 /tmp/keep.mode.lock; then echo "Unable to lock" echo "Unable to lock" > /tmp/keep.mode.lock.fail exit 0 fi case "$1" in master) # ems_reload_all echo "MASTER" > /tmp/keep.mode service eltex-ems restart service eltex-ngw restart service eltex-wifi-cab restart ;; backup) echo "BACKUP" > /tmp/keep.mode mongo_set_role slave service eltex-ems stop service eltex-ngw stop service eltex-wifi-cab stop ;; fault) echo "FAULT" > /tmp/keep.mode mongo_set_role slave service mongod restart ;; *) echo "Usage: $0 {master|backup|fault}" exit 1 esac lockfile-remove /tmp/keep.mode.lock; exit 0 |
...
В директорию /var/lib/proxysql/ необходимо добавить следующий скрипт read_only_switch.sh и назначить на него права выполнения (sudo chmod +x read_only_switch.sh):
Блок кода |
---|
#!/bin/bash MASTER_HOST="<ip_server_master>" SLAVE_HOST="<ip_server_slave>" MYSQL_USER="javauser" MYSQL_PASS="javapassword" # Проверяем доступность мастера if mysqladmin -h $MASTER_HOST -u $MYSQL_USER -p$MYSQL_PASS ping; then # Мастер доступен, убедимся, что он в read-write mysql -h $MASTER_HOST -u $MYSQL_USER -p$MYSQL_PASS -e "SET GLOBAL read_only = 0;" # Установить слейв в read-only, если он был временно переключен mysql -h $SLAVE_HOST -u $MYSQL_USER -p$MYSQL_PASS -e "SET GLOBAL read_only = 1;" else # Если мастер недоступен, переключаем слейв в read-write mysql -h $SLAVE_HOST -u $MYSQL_USER -p$MYSQL_PASS -e "SET GLOBAL read_only = 0;" fi |
...
Блок кода |
---|
# На слейве stop slave; change master to master_host='<IP MASTER>', master_port=5890, master_user='replication', master_password='password', master_use_gtid=slave_pos; start slave; # На мастере stop slave; change master to master_host='<IP SLAVE>', master_port=5890, master_user='replication', master_password='password', master_use_gtid=slave_pos; start slave; |
Смена версии mysql, которую отдает proxysql
Заходим в административную консоль, изменяем переменную:
Без форматирования |
---|
update global_variables set variable_value='5.7.19' where variable_name='mysql-server_version'; |
Загружаем изменения в оперативную конфигурацию proxysql:
Без форматирования |
---|
load mysql variables to runtime; |
Сохраняем изменения:
Без форматирования |
---|
save mysql variables to disk; |
Проверяем значение переменной:
Без форматирования |
---|
show variables like 'mysql-server_version'; |
Добавление/удаление/отключение сервера
...