如何在 Ubuntu 16.04 中启动 MySql 服务时 运行 MySQL 在 MySQL 中的固定数据库中查询?

How to run MySQL query in fixed database in MySQL at startup of MySql service in Ubuntu 16.04?

我必须每天 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';

除了来自 cronjob 的 运行ninf 之外,运行 MySQL 中 UBUNTU 中的这些查询有什么方法吗?

您可以直接从 MySQL 控制台执行此操作

mysql -umyuser 数据库名 -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';

如果你想直接做你可以按照here

的步骤在mysql配置文件中添加它

首先,我们找出我们的 MySQL 安装更喜欢哪个配置文件。为此,我们需要二进制文件的位置:

$ 其中 mysqld /usr/sbin/mysqld

然后,我们使用这个路径执行查找:

$ /usr/sbin/mysqld --verbose --help | grep -A 1 "Default options"

默认选项按给定顺序从以下文件中读取: /etc/my.cnf /etc/mysql/my.cnf~/.my.cnf 首先,我们找出当前的sql模式:

mysql -u homestead -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:

sudo 服务mysql 重启 SQL 模式已永久更改,我可以继续开发遗留项目,直到我需要一些额外的严格性。