2016-09-19 827 views
0

在我的my.cnf中,我写的:为什么mysqld_multi无法启动mysql?

[mysqld_multi] 
mysqld = /usr/local/Cellar/mysql/5.7.11/bin/mysqld_safe 
mysqladmin = /usr/local/Cellar/mysql/5.7.11/bin/mysqladmin 
user = root 
password = 

[mysqld1] 
pid-file = /usr/local/etc/mysql/mysqld.pid 
socket = /usr/local/etc/mysql/mysqld.sock 
port = 3306 
datadir = /usr/local/var/mysql 
log-bin=mysql-bin 
server-id=1 

[mysqld2] 
pid-file = /usr/local/etc/mysql/mysqld1.pid 
socket = /usr/local/etc/mysql/mysqld1.sock 
port = 3307 
datadir = /usr/local/var/mysql1 
server-id=2 
language=/usr/local/Cellar/mysql/5.7.11/share/mysql/english 
user=mysql 

然后我执行mysqld_multi start 2,我也得到了错误的信息:

Installing new database in /usr/local/var/mysql1 

2016-09-19 19:37:16 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize 
2016-09-19 19:37:16 [ERROR] Can't locate the language directory. 

FATAL ERROR: Tried to start mysqld under group [mysqld2], 
but no data directory was found or could be created. 
data directory used: /usr/local/var/mysql1 

我无法启动mysql的过程,所以有什么问题?看来目录/usr/local/var/mysql1有一些问题,但目录存在,它很困惑。

+0

你检查了目录权限吗?它应该是“mysql:mysql” 运行此命令: chown -R mysql:mysql/usr/local/var/mysql1 – malyy

回答

1

看起来好像mysqld_multi没有固定使用mysqld --initialize

您必须运行mysqld --initialize以及该服务器的my.cnf中的所有目录相关选项。

(来自评论) 您也可以按照Running two instances of mysql中的说明修复mysqld_multi脚本。

+0

或者你可以这样做https://stackoverflow.com/questions/39900497/running-two- mysql的实例(参见TIGERB的提示和我的评论) – user435421