我在unix脚本方面非常薄弱。是否有一种方法可以创建仅在服务器启动时启动的Unix脚本,并按顺序执行以下命令:
# cd /mysql
# ./bin/safe_mysqld --user=root &
# ./support-files/mysql.server start更长的故事..。在HP-UX服务器上,我已经安装了Mysql。但是,客户机希望服务器安装在/mysql中,而不是安装在/usr/local/mysql/中,这是标准位置。在上个星期,我一直在努力将mysql守护进程设置为在服务器启动时自动启动。
我不知道问题是什么,但到目前为止,启动服务器的唯一方法是使用上面的命令。
当服务器启动进程时,这是一个简短的输出:
Start MySQL Server .................................................. OK
...但是,在输入ps -ef之后,我可以很容易地看出它没有启动:
# ps -ef | grep -i mysql
root 3074 3056 0 15:26:53 pts/0 0:00 grep -i mysql
#当我开始这个过程时,应该是这样的:
# cd mysql
# ./bin/safe_mysqld --user=root &
[1] 3123
# Starting mysqld daemon with databases from /mysql/data
#
# ./support-files/mysql.server start
Starting MySQL
SUCCESS!
#
# ps -ef | grep -i mysql
root 3139 3123 0 15:27:19 pts/0 0:00 /mysql/bin/mysqld --basedir=/mysql --datadir=/mysql/data --u
root 3123 3056 0 15:27:19 pts/0 0:00 /bin/sh ./bin/safe_mysqld --user=root
root 3171 3056 0 15:27:59 pts/0 0:00 grep -i mysql
#现在,我认为更清楚的是,为什么我要创建一个shell启动脚本,并使用这些命令强制启动进程。
发布于 2012-02-07 13:01:49
二进制文件需要知道my.cnf文件在启动时的位置(默认值将在其中编译)。您没有说明在构建mysql时使用了什么路径前缀。反过来,my.cnf文件定义数据文件的位置。
使用适当的SysV init脚本来管理服务器是个好主意。除了解决在启动时启动服务器的问题之外,您还将在系统停止时得到一个干净的关闭,您可以为不同的运行级别配置合理的行为,并以托管方式单独停止/启动mysql服务器。如果您正确设置它,它将很好地发挥与SAM。
有这里的一个例子 (请注意,my.cnf的位置作为参数传递给safe_mysqld)。这应该在/sbin/init.d中,其中包含/sbin/rcX.d中的适当(符号)链接(其中X是相关的运行级)。这里描述了这个过程。。
发布于 2012-02-07 13:34:00
我认为最干净的事情,如果这是一个选项,是重新编译MySQL。
在源目录中(从tarball提取):
./configure --prefix=/mysql
make && sudo make installhttps://serverfault.com/questions/357572
复制相似问题