Как выполнить запрос MySQL в фиксированной базе данных в MySQL при запуске сервиса MySql в Ubuntu 16.04? - PullRequest
0 голосов
/ 17 декабря 2018

Я должен выполнять эти запросы в MySQL каждый день в базе данных ABC.

set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

Есть ли способ выполнить эти запросы в MySQL в UBUNTU, кроме runninf из cronjob?

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Сначала мы выясним, какой конфигурационный файл предпочитает наша установка MySQL.Для этого нам нужно местоположение двоичного файла:

$, который mysqld / usr / sbin / mysqld

Затем мы используем этот путь для выполнения поиска:

$ / usr/ sbin / mysqld --verbose --help |grep -A 1 «Параметры по умолчанию»

Параметры по умолчанию считываются из следующих файлов в указанном порядке: /etc/my.cnf /etc/mysql/my.cnf ~ / .my.cnf Сначала мыузнать текущий режим sql:

mysql -u hometead -psecret -e "select @@ sql_mode"

+ ------------------------------------------------------------------------------------------------------------------------------------------- + |@@ sql_mode |+ ------------------------------------------------------------------------------------------------------------------------------------------- + |ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION |+ ------------------------------------------------------------------------------------------------------------------------------------------- + Мы открываем файл конфигурации, который мы определили ранее(/etc/mysql/my.cnf) и добавьте следующую строку в раздел [mysqld]:

# ... другие вещи, вероятно, будут здесь

[mysqld]

sql_mode = "STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION"

сохранение, выход и постоянный перезапуск службы MySQL 10: * 10 * * 10 перезапускается, перезапускается, MySQL: *и я могу продолжить разработку устаревшего проекта, пока мне не понадобится дополнительная строгость.

0 голосов
/ 17 декабря 2018

Вы можете напрямую выполнить это с консоли MySQL

mysql -umyuser databasename -p -A

set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

Если вы хотите сделать это напрямую, вы можете добавить егов файле конфигурации mysql выполните шаги здесь

...