自作(Mac OS X 10.6)を使用してMySQLをインストールしようとしましたが、最初のハードルで問題が発生しました。サーバーを手動で起動しようとすると(mysql.server start)、次のエラーが発生します。
. ERROR! Manager of pid-file quit without updating file.
残念ながら、これまでこの方法でMySQLをインストールしたことがないため、チェックするエラーログまたは構成ファイルがわかりません。
自作でインストールするときに、これと同じ問題が発生しました。次のコマンドを実行してください(インストール中にリストされますが、見逃しがちです)。
unset TMPDIR
mysql_install_db
おそらく、mysqlをユーザーとして実行していることを確認する必要があります。root
そうしないと、PIDファイルを書き込む権限がありません(したがって、エラーが発生します)。
これを試して:
sudo mysql.server start
パスワードの入力を求められます。(これは、ユーザーアカウントに「sudo」へのアクセス許可があることを前提としています。これは、OS Xで制限付きユーザーアカウントとして設定されていない限り、必要です)。
これが唯一の問題ではないかもしれませんが、とにかく次のステップに進むはずです。
homebrewを使用してLionにMySQL5.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データの場所である必要があります
「brewinstallmysql」で次のようなものを検索しているときに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
次の2つのコマンドで、問題を解決できます。
> unset TMPDIR
> mysql_install_db --verbose --user=\`whoami\` --basedir="$(brew
--prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
他に何も役に立ちませんでしたが、次のことが機能しました。
$ 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
それまたはcat
それ)の内部を見ると、おそらく次のエラーが表示されます。
[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
もしそうなら、あなたはそれが許可の問題であることを知っています。
気にしない場合は、実行するだけでMySQLを実行できますmysqld
(そしてそのターミナルを開いたままにしておきます)。
あなたが気にするなら:
ls -al /usr/local/var/mysql
おそらくすべての権限があなた(あなたのユーザーアカウント)に設定されていることに気付くでしょう。これは、自作ショートカットを使用してデータベースを実行すると、mysqlがデータベースをマウントできないことを意味しますsudo mysql.server start
[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/もchownする必要がありました。 mysql.sock。
mySQLをユーザーの下で実行できるようにすること(Linuxでwoudlを行うようにrootまたはwwwとは対照的に)は、この点で最善のアイデアではないようです(Homebrewは式を更新できますが、私の範囲と時間を超えています)。