init.d / mysql - 默认配置在启动时阻止我的一个实例

时间:2014-04-21 17:49:22

标签: mysql linux redhat

我在上周末遇到了一个问题。

我的一台服务器重新启动,当服务器启动时,它启动了一个在安装时配置的默认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

中指定

我很感激为解决这个问题所做的任何努力。

1 个答案:

答案 0 :(得分:0)

试试这个:

$ my_print_defaults --defaults-file=/etc/my.cnf mysqld

根据您的配置文件,这将显示它认为datadir的设置。

我看到配置文件在人们编辑时感到困惑,甚至自动化工具也可以编辑配置文件并添加新的配置条目。请记住,如果配置文件有多行定义datadir,则 last 文件中的这一行优先。


如果你有一个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