2016-09-19 103 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