モロモロ工事中です

MacPortsからMySQLをインスコしようとしたらトラブったのでメモ

Mac — タグ: , , — さくら @ 2011/01/12 16:25

最近 MacBook を買ったので、ちょいちょい Mac でもプログラム作ったりしてます。

開発環境の構築は面倒っちいのでパッケージングシステムを使ってしてます。Mac にも Linux の RPM とか FreeBSD の ports みたいなパッケージングシステムが何種類かあるのですが、とりあえず MacPorts を使ってます。

「MacPorts で MySQL インスコできたよー\(^o^)/」とか書いてるブログが山ほどあったので、自分の MacBook にも MySQL インスコしてみよっかなーと作業を始めてみたらトラブったのでメモっときます。

インストール手順

root での作業は sudo から実行しています。ガイルとザンギは無視してくださいww

1. mysql5 と mysql5-server パッケージをインストール

port install で mysql5 と mysql5-server をインストールします。ビルドにちょっと時間がかかりますが、ここでは問題は発生しません。

$ sudo port install mysql5 mysql5-server
...
______
\    /
 ( ´∀`) ザンギエフへ げんきですか。いまmysql5溜めてます
       _ 
      i_iヽ
    (゚д゚,,;;) うるさい死ね 溜めるな殺すぞ

2. mysql_install_db5 を実行する

mysql ユーザーで mysql_install_db5 を実行してデータベースを作成します。ここでも問題は発生しないと思います。

$ sudo -u mysql mysql_install_db5
...
______
\    /
 ( ´∀`) mysql_install_db5 撃っておきました。ガードしてね 飛び込みはしますか?
       _ 
      i_iヽ
    (#)Д`;;) 死ねくそガイル

3. mysql サーバを起動する

mysql サーバの起動スクリプトを実行します。以下のようにエラーメッセージが出ます。

$ sudo /opt/local/share/mysql5/mysql/mysql.server start
Starting MySQL
...... ERROR! Manager of pid-file quit without updating file.
______
\    /
 ( ´∀`) ごめんね、ERROR!痛かった? 起き上がりにソニック重ねておきます
       _ 
      i_iヽ
    (#)Д`;;) うるさい死ね 着地と同時にすぐ座り込むな

トラブルシューティング

どこで実行に失敗してるのか確認するためログファイルを開きます。MySQL のログファイルは /opt/local/var/db/mysql5/snowleopard.local.err (ログファイル名は “マシン名.err” で環境によります)にあります。

問題はこの辺で発生しているようです。

110112 14:49:16  InnoDB: Started; log sequence number 0 0110112 14:49:16 [ERROR] Can't start server : Bind on unix socket: Permission den
ied110112 14:49:16 [ERROR] Do you already have another mysqld server running on soc
ket: /opt/local/var/run/mysql5/mysqld.sock ?
110112 14:49:16 [ERROR] Aborting

ログによるとソケット mysqld.sock の作成に失敗しているようです。ソケットの作成先ディレクトリの /opt/local/var/run/ を ls で見てみます。

$ ls /opt/local/var/run
ls: run: Permission denied
$ ls -l /opt/local/var/run
drwx------  5 root  admin  170  1 12 14:45 /opt/local/var/run/

あら、ディレクトリが開けませんね。/opt/local/var/run/ にパーミッションが無いのが問題のようです。

MacPorts では mysql を _mysql ユーザーで実行するのですが、ソケットの作成も _mysql ユーザーで行いますので、run ディレクトリにパーミッションが無いとソケットの作成に失敗し起動できません。

ということでディレクトリにパーミッションを付与して再起動してみます。

$ sudo chmod 755 /opt/local/var/run/
$ sudo /opt/local/share/mysql5/mysql/mysql.server start
Starting MySQL
. SUCCESS!

動きますた。

その他の設定

MySQL サーバの起動に成功したらシステムの設定をします。設定方法は MacPortsを使ってMacにMySQLをインストールPHP5環境構築(OSX macports) などを参考にしてください。

システムブート時に mysql を起動するように設定する際、/Library/LaunchDaemons/org.macports.mysql5.plist のインストール方法が若干改良されていますので、launchctl を直接実行せずに port load を実行した方が良いと思います。

$ sudo port load mysql5

おしまい

2件のコメント

  1. MacPortsからMySQLをインスコしようとしたらトラブったのでメモ | さくらたんどっとびーず

    コメント by christian louboutin bag — 2013 年 7 月 21 日 @ 04:36
  2. nice work keep it up

    コメント by manish rijal — 2019 年 11 月 13 日 @ 21:46

この投稿へのコメントの RSS フィード。 TrackBack URI

現在、コメントフォームは閉鎖中です。

Copyright © 2024 さくらたんどっとびーず | powered by WordPress with Barecity