&tag(MacPorts/mysql5.5);
*目次 [#v1eb88de]
#contents
*参考情報 [#k96cfaa1]
-[[Install MAMP Development stack on Mountain Lion using MacPorts.md:https://gist.github.com/cordoval/4772066]]
-[[MacPorts]]
-[[MySQL]]
-[[MySQL/管理]]

*インストール [#g9811765]
-mysql55-serverパッケージをインストールする
 sudo port install mysql55-server

*設定 [#e3cc3795]
**my.cnfの編集 [#d44e9c20]
-既にデフォルトのmy.cnfがインストールされている
 sudo emacs -nw /opt/local/etc/mysql55/my.cnf
-先頭行のincludeを削除しないとネットワーク経由で接続できない(デフォルト設定で禁止されているため)。
#pre{{
# Use default MacPorts settings
!include /opt/local/etc/mysql55/macports-default.cnf

}}
-utf-8に統一する。
#pre{{
[client]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
}}
**データベース初期化 [#xc7a9223]
-初期化スクリプトを実行する(※envでTMPDIRが設定されている場合かつsudoで環境変数を引き継ぐようにしている場合、unset TMPDIRまたはunalias sudoしてからじゃないとだめ。)。
 unalias sudo
 sudo -u _mysql /opt/local/lib/mysql55/bin/mysql_install_db
-パスワードを設定する
 /opt/local/lib/mysql55/bin/mysqladmin -u root password 'new-password'
**DB初期設定 [#v3fe9c92]
 sudo -u _mysql mysql_install_db5

**自動起動設定 [#tf7b23f4]
 sudo port load mysql55-server

**止める [#r5326c69]
 sudo port unload mysql55-server

*Tips [#ub81c659]
**mysql5.1からの移行 [#qe738b21]
-mysql5.1データベースの全ダンプ(mysqldump --all-database)
-mysql5.1の削除
 sudo port uninstall mysql-server
-mysql5.5のインストール
 sudo port install mysql55-server
-上の設定に従ってmysql55-serverのセットアップを行う。
-データベースの個別リストア(mysql --one-database データベース名)。事前に空のデータベースがないとだめっぽい。[[mysql - How do I restore one database from a mysqldump containing multiple databases? - Stack Overflow:http://stackoverflow.com/questions/3596444/how-do-i-restore-one-database-from-a-mysqldump-containing-multiple-databases]]
-phpを使っている場合、/opt/local/etc/php5/php.ini を編集し、/opt/local/var/run/mysql5/mysqld.sockを/opt/local/var/run/mysql55/mysqld.sockに書き換える。

**データベースを最初から作り直す [#x993c123]
-パッケージを完全に削除する方法はないのでこの方法でやり直す。
#pre{{
sudo port deactivate mysql55-server mysql55
cd /opt/local/var/db
sudo /bin/rm -r mysql55
sudo port activate mysql55-server mysql55
unalias sudo
sudo -u _mysql /opt/local/lib/mysql55/bin/mysql_install_db
}}
*トラブルシューティング [#xbff5378]
**mysql_install_dbを実行するとCan't create/write to file '/var/flodlers/...'といわれてダメ。 [#da386abe]
-コマンドは以下の形式で実行。
 sudo -u _mysql /opt/local/lib/mysql55/bin/mysql_install_db
-原因は、TMPDIR環境変数が一般ユーザー(sudoを実行するユーザー)に設定されていて、かつ、sudoで環境変数を引き継ぐ設定になっていたから。unsetするか、tmpdirの明示指定でいけるっぽい。
--unset TMPDIR
--sudo -u _mysql /opt/local/lib/mysql55/bin/mysql_install_db --tmpdir=/tmp”

**インストール直後に「Access denied for user 'root'@'localhost' (using password: YES)」 [#v167ec89]
-/opt/local/lib/mysql55/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'といわれてしまう。
-原因は、~/.my.cnfが存在していてそこにrootのパスワードを書いていたから(-pオプションの省略で、.my.cnfのパスワードが使われていた模様)。
-明示的に-pを指定するか、.my.cnfを一時的にリネームする。(-pのあとにスペース2個必要かも?)
 /opt/local/lib/mysql55/bin/mysqladmin -u root -p  password 'new-password'

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS