有没有人有mysqlmanager运行在Debian上的多个MySQL实例? 问题是,Debian没有提供使用mysqlmanager的init.d脚本。 哦,这对我不起作用。
我试图运行3个实例,这是我启动mysqlmanager后得到的
#mysqlmanager --defaults-file = / etc / mysql / my.cnf ... 090614 0:42:10启动实例'mysqld2'... 090614 0:42:10监护人:启动实例“mysqld1”... 090614 0:42:10启动实例'mysqld1'... 090614 0:42:10启动实例“mysqld3”... 090614 0:42:10监护人:启动实例“mysqld3”... 090614 0:42:10监护人:启动实例“mysqld2”... 090614 0:42:10启动实例'mysqld2'... 090614 0:42:10监护人:启动实例“mysqld1”... 090614 0:42:10启动实例'mysqld1'... ...
它只是保持“开始”和“重新启动”,但没有MySQL实例启动。
回答我自己的问题:
mysqld正在重新启动,因为权限问题,正在执行
#chmod -R mysql:root / var / lib / mysql
固定的。 以前的目录是由mysql:mysql拥有的。
关于mysqlmanager启动脚本,我已经设法破解了一个丑陋的解决scheme,适合我,随时编辑和使用,如果你也需要它:
#!/斌/庆典
#
设置-e
设置-u
$ {DEBIAN_SCRIPT_DEBUG:+ set -v -x}
testing-x / usr / sbin / mysqld || 退出0
。 / LIB / LSB / INIT-function
SELF = $(cd $(dirname $ 0); pwd -P)/ $(basename $ 0)
USER = MySQL的
PID_FILE =在/ var /运行/ mysqld的/ manager.pid
mysqlmanager_get_pid(){
FAIL_PID = -1
如果[! -f $ PID_FILE]; 然后
#尝试按进程名称find它
PROCESS =`ps -ef | grep -v grep | grep mysqlmanager`
如果[! $ PROCESS]; 然后
返回$ FAIL_PID
其他
返回$ PROCESS
科幻
其他
PID =`cat $ PID_FILE`
PROCESS =`ps -ef | grep -v grep | grep -c $ PID`
如果[! $ PROCESS]; 然后
返回$ FAIL_PID
其他
返回$ PROCESS
科幻
科幻
}
case“$ {1: - ''}”in
'开始')
如果! mysqlmanager_get_pid; 然后
/ usr / sbin / mysqlmanager --defaults-file = / etc / mysql / my.cnf --run-as-service
其他
回声“错误:mysqlmanager已经运行”
科幻
;;
'停止')
#我懒得让这个更聪明
killall -1 mysqlmanager
killall -1 mysqld
;;
'重新开始')
设置+ e; $ SELF停止; 设置-e
$ SELF开始
;;
*)
回声“用法:$ SELF start | stop | restart”
出口1
;;
ESAC
把它放到/etc/init.d/mysql(将原始的mysql脚本移出),
使其可执行
#chmod + x /etc/init.d/mysql
它应该工作。
也许使用mysqld_multi将是更简单的方法? 我已经分析了SLES中的服务脚本,我发现如果你设置了:
/etc/sysconfig/mysql
选项:
MYSQLD_MULTI="no"
到“是”,而不是正常的守护进程不启动服务器,而是调用mysqld_multi守护进程。
我很遗憾,因为这个方法在Debian中没有实现,但是我相信如果你修改了mysql服务脚本并且添加了使用mysqld_multi守护进程的声明,那么你将拥有具有多个实例的全function服务器。
问候,Vlado