在Ubuntu服务器上启动mysql之前,我需要运行另一个设置一些东西的脚本。 mysql由Upstart系统启动。我从来没有听说过Upstart,但我现在已经阅读了文档,我认为有一些选择可以实现这一点,但我会感谢更有经验的Upstart用户确认或否则我的结论。
在下面的四个选项中,我赞成最后一个,因为它不涉及更改mysql.conf作业。
mysql.conf:
pre-start script
mkdir -p /mnt/mysql
[ -L /var/lib/mysql ] || ln -s /mnt/mysql /var/lib/mysql
/usr/bin/mysql_install_db --user=mysql
chown mysql:mysql /var/lib/mysql/mysql/.
chown mysql:mysql /var/lib/mysql/mysql/*
end script
mysql.conf
pre-start exec /var/myscriptfile (where myscriptfile contains mkdir -p /mnt/mysql etc)
mysql.conf
start on started mysql-primer
(where mysql-primer is an Upstart job that does mkdir etc)
mything.conf
start on starting mysql
task
script
mkdir -p /mnt/mysql
[ -L /var/lib/mysql ] || ln -s /mnt/mysql /var/lib/mysql
/usr/bin/mysql_install_db --user=mysql
chown mysql:mysql /var/lib/mysql/mysql/.
chown mysql:mysql /var/lib/mysql/mysql/*
end script
谢谢, 保罗
答案 0 :(得分:2)
你的最后一个想法是完全正确的:
mything.conf:
start on starting mysql
task
script
mkdir -p /mnt/mysql
[ -L /var/lib/mysql ] || ln -s /mnt/mysql /var/lib/mysql
/usr/bin/mysql_install_db --user=mysql
chown mysql:mysql /var/lib/mysql/mysql/.
chown mysql:mysql /var/lib/mysql/mysql/*
end script
启动事件会阻止任何启动它的任务,直到所述任务完成。