我在上周末遇到了一个问题。
我的一台服务器重新启动,当服务器启动时,它启动了一个在安装时配置的默认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
我很感激为解决这个问题所做的任何努力。
答案 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
。