A Django site.
5月 26, 2008
» MacPortsのmysql5でreadlineが組み込まれない

MacPortsのmysql5パッケージに含まれるmysql5コマンドが、readlineの組み込まれていない状態でビルドされてしまい不便だったので、強引にPortfileにvariantを追加してビルドしなおした。

--- /opt/local/var/macports/sources/rsync.macports.org/release/ports/databases/mysql5/Portfile.orig     2008-05-05 13:56:36.000000000 +0900
+++ /opt/local/var/macports/sources/rsync.macports.org/release/ports/databases/mysql5/Portfile  2008-05-26 15:53:07.000000000 +0900
@@ -68,6 +68,12 @@
     startupitem.stop    "${prefix}/share/${mysql}/mysql/mysql.server stop"
 }
 
+variant readline {
+    # enable readline
+    depends_lib-append  port:readline
+    configure.args-append  --with-readline
+}
+
 pre-destroot {
     # Some directories we must have in all cases
     xinstall -m 755 -d ${destroot}${sysconfdir}

インストールは以下のように。

$ sudo port install mysql5 +server +readline

今回はreadlineを使ったけど、libeditを使う場合はeditlineマルチバイト不具合の修正 - mir the affiancedを参考に。

8月 20, 2007
» MySQL on Mac OS Xおぼえがき

MySQL ABが配布しているMySQLのMac OS X用パッケージに関するメモ。いつも忘れてしまうので。

  • mysql システムアカウントが必要(Mac OS X 10.2以降は標準で存在する)
  • インストーラがやること
    • /usr/local/mysql-VERSION 以下へのMySQLインストール
    • /usr/local/mysql からインストールディレクトリへのシンボリックリンク作成
    • /usr/local/mysql が存在する場合に /usr/local/mysql.bak にリネーム
    • mysql_install_db を実行して mysql テーブルに権限情報の作成
  • パスなど
    • 各種コマンドは /usr/local/mysql/bin 以下にある
    • ソケットファイルは `/tmp/mysql.sock’ に作成される
  • サーバプロセスの自動起動
    • システム起動時にMySQLを起動させたい場合はMySQLStartupItem.pkgをインストールする
    • MySQLStartupItem.pkgは一度インストールすれば、MySQLをバージョンアップしてもそのまま使える
    • 起動スクリプトは /Library/StartupItems/MySQLCOM にインストールされる(MySQL 4.1.2以前はMySQLという名前)
    • インストーラは /etc/hostconfigMYSQLCOM=-YES- を追加する
    • 自動起動を無効にしたい場合は MYSQLCOM=-NO- に書き換える
  • サーバプロセスの手動起動
    • 起動スクリプトをインストールした場合
      • $ sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
    • 起動スクリプトをインストールしていない場合
      • $ cd /usr/local/mysql
      • $ sudo ./bin/mysqld_safe
      • $ bg
  • 最初に権限テーブルに含まれているアカウントにはパスワードが設定されていないので、サーバ起動後にパスワードを設定すること
  • PATH環境変数に /usr/local/mysql/bin/ を追加する
  • アップグレード
    • MySQL のアップグレード時には古いバージョンのディレクトリはそのまま完全に残る
    • 既存のデータベースを移行したい場合は、古いデータディレクトリを新しいデータディレクトリにコピーする
    • その際、新旧いずれのサーバプロセスも動いていないことを確認すること
    • 以降が上手くいったら古いバージョンのディレクトリは削除してもよい
    • 古いバージョンのレシピファイル /Library/Receipts/mysql-VERSION.pkg も削除する