在过去的周末,我遇到了一个突发的问题。
我的一台服务器被重新启动,当服务器出现时,它启动一个默认的mysql实例,在安装时进行配置。它使用端口3306作为默认值,并阻止我的一个实例出现。
如何从引导中删除此默认实例,并在/etc/my.cnf ?中引导实例
我认为正在发生的事情是,它将运行到/var/lib/mysql,并根据某些默认配置启动一个实例,因为这里没有my.cnf文件,但我在init.d中找到了以下代码:
#Set some defaults
mysqld_pid_file_path=
if test -z "$basedir"
then
basedir=/usr
bindir=/usr/bin
if test -z "$datadir"
then
datadir=/var/lib/mysql
fi 但是我没有看到在那个位置的任何my.cnf文件可能会从那里提取配置选项。
我的数据目录每个实例都会更改,它们都是在/etc/my.cnf中指定的。
我感谢在这个问题上所付出的一切努力。
发布于 2014-04-21 18:27:10
试试这个:
$ my_print_defaults --defaults-file=/etc/my.cnf mysqld根据您的配置文件,这将显示它认为datadir设置为什么。
我看到当人们编辑配置文件时,配置文件会变得混乱,甚至自动化工具也会编辑配置文件并追加新的配置条目。请记住,如果配置文件有多行定义datadir,那么文件中的最后一行优先。
如果您有一个mysqld在引导时自动启动的实例,我将使用chkconfig来确定何时会发生这种情况。例如,下面是在我的VM上运行的命令:
$ chkconfig
...
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
...数字0到6是运行级,"on“表示当给定的运行级启动时,/etc/init.d/mysql服务脚本由init运行。
您还可以使用chkconfig修改给定服务在哪个运行级别下启动,甚至在所有运行级别禁用该服务,这样它就不会自动启动。
$ chkconfig --level 2345 mysql off有关更多用途,请参考man chkconfig。
https://stackoverflow.com/questions/23202731
复制相似问题