Ubuntu:在哪里添加在机器启动时执行 SQL 的脚本?

Ubuntu:在哪里添加在机器启动时执行 SQL 的脚本?

每次 Ubuntu 启动时,我都需要运行一个脚本,该脚本运行一些 SQL。所以我需要在MySQL启动后运行它。

我应该把这样的脚本放在哪里?

答案1

文件应放置在 中/etc/init.d,并且链接应放在 中/etc/rc2.d(假设您处于运行级别 2(请参阅who -r)。

链接的形式应为S99sql,rc2.d 中的所有文件均按字母顺序运行。

总结,

创建游览文件/etc/init.d/mysqlcmd.sh

然后将目录更改为/etc/rc2.d ansln -s ../init.d/mysqlcmd.sh S99mysql

答案2

系统

如果您使用的 Ubuntu 版本正在使用systemd(14.04 及以上),那么您可以修改该文件并添加另一个要在准备就绪.service时运行的脚本。MySQL

# vi /usr/lib/systemd/system/mysqld.service

添加另一个条目:

ExecStartPost=/usr/libexec/mysqld-wait-ready $MAINPID

通过附加分号和脚本名称:

ExecStartPost=/usr/libexec/mysqld-wait-ready $MAINPID ; <path to my script>

bash请注意,这些脚本不是使用 shell 运行的,因此如果您需要重定向等,您需要将您的脚本包装起来或类似的脚本。

mysqld-wait-ready脚本完全按照它所说的进行操作,并等待直到mysqld准备好接受连接。因此,您的脚本应该能够在服务器上运行 SQL。

暴发户

对于 Ubuntu 14.04 之前的版本,您可以创建一个upstartconf 文件

description     "My Post-MySQL Start Script"
author "Pavel Bernshtam"

start on started mysql

task
script
    # do my stuff here
end script

将文件保存到/etc/init/<my script name>.conf

有关脚本的更多信息,upstart请访问这里

相关内容