如何在每次服务启动时 运行 MySQL 查询?
How to run a MySQL query on every service start?
我需要 运行 查询以在每次 MySQL 启动时填充内存 table。
有什么办法吗?
MySQL 能够在启动时从 init_file
读取语句。
您必须将以下内容放入 my.ini
或 my.cnf
(取决于 OS)文件
[mysqld]
init-file="/path/to/your/query/populate_memory_table.sql"
另一种选择是在 mysql 启动后有一个系统脚本 运行。在 Linux 中使用 systemd,以下将起作用:
cat > /lib/systemd/system/mysql-preload.service << END
[Unit]
Description=Pre-Load MEMORY tables after MySQL starts
PartOf=mysql.service
After=mysql.service
[Service]
Type=oneshot
ExecStart=/home/myuser/script.sh
[Install]
WantedBy=multi-user.target
END
systemctl daemon-reload
下次 mysql 启动或重新启动时,脚本将 运行。不如 init_file
好,因为 mysql 在 MEMORY 表被填充之前可用于查询,但更灵活。
我需要 运行 查询以在每次 MySQL 启动时填充内存 table。
有什么办法吗?
MySQL 能够在启动时从 init_file
读取语句。
您必须将以下内容放入 my.ini
或 my.cnf
(取决于 OS)文件
[mysqld]
init-file="/path/to/your/query/populate_memory_table.sql"
另一种选择是在 mysql 启动后有一个系统脚本 运行。在 Linux 中使用 systemd,以下将起作用:
cat > /lib/systemd/system/mysql-preload.service << END
[Unit]
Description=Pre-Load MEMORY tables after MySQL starts
PartOf=mysql.service
After=mysql.service
[Service]
Type=oneshot
ExecStart=/home/myuser/script.sh
[Install]
WantedBy=multi-user.target
END
systemctl daemon-reload
下次 mysql 启动或重新启动时,脚本将 运行。不如 init_file
好,因为 mysql 在 MEMORY 表被填充之前可用于查询,但更灵活。