Homebrew(Mac OS X 10.6)を使用してMySQLをインストールしようとしましたが、最初のハードルで問題に遭遇しました。サーバーを手動で起動しようとすると(mysql.server start)、次のエラーが表示されます。
. ERROR! Manager of pid-file quit without updating file.
残念ながら、以前にこの方法でMySQLをインストールしたことがないため、どのエラーログまたは構成ファイルを確認するのかわかりません。
Homebrew経由でインストールするときに、この同じ問題に遭遇しました。これらのコマンドを必ず実行してください(インストール中にリストされますが、見逃しやすいです):
unset TMPDIR
mysql_install_db
おそらく、mysqlをroot
ユーザーとして実行していることを確認する必要があります。そうしないと、PIDファイルを書き込む権限がありません(したがって、受け取ったエラー)。
これを試して:
Sudo mysql.server start
パスワードの入力を求められます。 (これは、ユーザーアカウントに「Sudo」へのアクセス許可があることを前提としています。これは、OS Xで制限付きユーザーアカウントとして設定されている場合を除きます)。
これが唯一の問題ではないかもしれませんが、とにかく次のステップに進むはずです。
幸運を!
次の2つのコマンドで問題を解決できます。
> unset TMPDIR
> mysql_install_db --verbose --user=\`whoami\` --basedir="$(brew
--prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
Homebrewを使用して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
ではなく、私に戻ります)。理由はわかりません。
そのため、この原因の1つは、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
おそらく、アクセス許可がすべてあなた(ユーザーアカウント)に設定されていることに気付くでしょう。これは、homebrewショートカットSudo mysql.server start
を使用して実行すると、mysqlがデータベースをマウントできないことを意味します[Sudoを使用して 'admin'モードで実行している場合でも]。
そのため、許可を変更します。
$ Sudo chown -R _mysql /usr/local/var/mysql
$ Sudo chmod -R o+rwx /usr/local/var/mysql
その後、動作します。
何らかの理由で上記のImmendesの下にコメントすることはできませんが、mySQL 5.6.10を使用した10.8.2では、db_installの検証とmy.cnfの追加に加えて、-R myusername/tmp/mysql.sock。
この点では、mySQLをユーザーの下で実行できるようにすることは(Linuxで行うようにrootまたはwwwに任せて)最良のアイデアではないようです(ただし、Homebrewは式を更新できますが、私の範囲と時間を超えています)。