簡體   English   中英

mysql.server 啟動時出現 PID 錯誤?

[英]PID error on mysql.server start?

我剛剛嘗試使用自制軟件(在 Mac OS X 10.6 上)安裝 MySQL,但我在第一個障礙中遇到了一個問題。 嘗試手動啟動服務器(mysql.server start)時,出現以下錯誤:

. ERROR! Manager of pid-file quit without updating file.

不幸的是,我不確定要檢查哪些錯誤日志或配置文件,因為我以前從未以這種方式安裝過 MySQL。

我在通過自制軟件安裝時遇到了同樣的問題。 確保您運行這些命令(在安裝過程中列出但很容易錯過):

unset TMPDIR
mysql_install_db

您可能需要確保以root用戶身份運行 mysql - 否則它將無權寫入 PID 文件(因此您會收到錯誤)。

嘗試這個:

sudo mysql.server start

系統會提示您輸入密碼。 (這假設您的用戶帳戶具有“sudo”權限——它應該如此,除非它在 ​​OS X 中設置為受限用戶帳戶)。

這可能不是唯一的問題——但無論如何它應該讓你進入下一步。

以下兩個命令應該可以解決您的問題。

> unset TMPDIR
> mysql_install_db --verbose --user=\`whoami\` --basedir="$(brew
--prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

我在嘗試使用自制軟件在 Lion 中安裝 MySQL 5.5.15 時遇到了同樣的問題,並通過以下方式解決了該問題:

mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

並創建文件 ~/my.cnf

內容:

 [mysqld]
   basedir=/usr/local/Cellar/mysql/5.5.15
   datadir=/usr/local/var/mysql

basedir - 應該是你當前的 MySQL 安裝目錄 datadir - 應該是 MySQL 數據的位置

您可以通過在“brew install mysql”期間觀察 make 命令來找出類似的位置:

-DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/mysql/5.5.15 -DMYSQL_DATADIR=/usr/local/var/mysql -DINSTALL_MANDIR=/usr/local/Cellar/mysql

其中 DCMAKE_INSTALL_PREFIX = basedir 和 DMYSQL_DATADIR = datadir

沒有其他真正的幫助,但以下工作有效:

$ ps aux | grep mysql
tagir           27260   0.0  1.0  3562356 175120   ??  S     2:52PM   0:00.42 mysqld --skip-grant-tables
tagir           42704   0.0  0.0  2434840    784 s000  S+    3:04PM   0:00.00 grep mysql
$ kill 27260
# Careful! This might erase your existing data
$ rm -rf /usr/local/var/mysql
$ mysqld --initialize
$ mysql.server start

我在這里添加這個是因為我在安裝其他軟件后多次遇到這個問題。 MySQL 工作了好幾天,然后突然我收到這個錯誤。

當我安裝某些東西(例如,elasticsearch 或 Puma Web 服務器)時,似乎會發生這種情況。 MySql 權限再次恢復(返回給我,而不是_mysql )。 不知道為什么。

  • MacOS 塞拉利昂
  • 自制 1.0.5-43-g41b2df8 (2016-10-02)
  • MySQL 5.7.15

所以我發現造成這種情況的一個原因是 MySQL 存儲數據庫的位置的權限,默認情況下,這里是:

/usr/local/var/mysql

如果您查看該文件夾,您將看到一個文件

<your computer name>.err

如果您查看該文件( more it 或cat it ),您可能會看到以下錯誤:

[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable

如果是這樣,那么您就知道這是一個權限問題。

如果您不在乎,您可以通過運行mysqld運行 MySQL(並保持該終端打開)。

如果你真的關心:

ls -al /usr/local/var/mysql

您會注意到權限可能都設置給您(您的用戶帳戶)。 這意味着當您使用自制快捷方式sudo mysql.server start運行 mysql 時,mysql 無法掛載您的數據庫 [即使您使用 sudo 在“管理員”模式下運行]。

因此,更改權限:

$ sudo chown -R _mysql /usr/local/var/mysql
$ sudo chmod -R o+rwx /usr/local/var/mysql

然后它會起作用。

看來無論出於何種原因我都無法在上面的 Immendes 下方發表評論,但是在 10.8.2 和 mySQL 5.6.10 上,除了驗證 db_install 並添加 my.cnf 之外,我還必須 chown -R myusername /tmp/ mysql.sock。

似乎允許 mySQL 在用戶下運行(就像我在 linux 上所做的那樣與 root 或 www 相關)在這方面並不是最好的主意(盡管 Homebrew 可以更新公式 - 超出了我的范圍和時間)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM