Mountain Lion の MacPorts で MySQL

Mountain Lion の MacPorts で MySQL (5.1.65) を入れてみる。howto/MAMP – MacPorts の内容 (Step 3: Install MySQL) をほぼそのままメモ。

$ sudo port install mysql5-server


$ sudo -u _mysql mysql_install_db5
$ sudo chown -R mysql:mysql /opt/local/var/db/mysql5/
$ sudo chown -R mysql:mysql /opt/local/var/run/mysql5/
$ sudo chown -R mysql:mysql /opt/local/var/log/mysql5/

OS 起動時に自動スタートするように、以下を実行。

$ sudo port load mysql5-server


$ ps -ax | grep mysql

root のパスワードを設定。

$ mysqladmin5 -u root -p password <new-password> 

<new-password> には新しいパスワードを入力する。”Enter password:” でパスワードを聞かれるが、初回であればそのままリターンを押せばよい。

MySQL にログインしてみる。

$ mysql5 -u root -p
Enter password:   # <-- 先ほど設定したパスワード
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 12
Server version: 5.1.65 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> show databases;
| Database           |
| information_schema |
| mysql              |
| test               |
3 rows in set (0.01 sec)

mysql> use test;   # <-- database test 使用
Database changed
mysql> create table test(num int, name varchar(50));    # <-- table test 作成
Query OK, 0 rows affected (0.06 sec)

mysql> insert into test values(1,'foobar');    # <-- foobar 登録
Query OK, 1 row affected (0.00 sec)

mysql> exit;   # <-- 抜ける



my.cnf の場所は、


my.cnf の設定例が /opt/local/share/mysql5/mysql 以下にある (my-small.cnf etc.)。

念のため Mac 再起動後も daemon が走っているか確認する。

$ ps -ax | grep mysql


Mountain Lion でも Apache は標準で搭載されているが、以前のように「システム環境設定」の「共有」の「Web共有」から設定できなくなったようだ (cf. OS X Mountain Lion:Web 共有のオプション)。


$ sudo apachectl start 


$ sudo apachectl stop


$ sudo apachectl restart

ということらしい。私は Lion からアップグレードしたので、設定が引き継がれていた (すでに「開始」していた…)。

あなたの予想に反して、http://localhostはてブ されてても驚かないように ^^;

DB 接続テスト

$ sudo port install libwww p5-dbi p5-dbd-mysql

use DBI;
$conn = &ConnectDB;

print "Content-type: text/htmlnn";
print "<html><head><title>CGI-Perl  DBI:MySQL TEST</title>n";
print "<meta http-equiv='content-type' content='text/html; charset=utf-8'>n";
print "</head><body><h2>DB接続テスト(CGI-Perl DBI:MySQL版)</h2>n";

$sql = "select * from test";
$sth = $conn->prepare($sql);
$ref = $sth ->execute;

    ($id,$name) = $sth->fetchrow_array();
    print "$id / $name<br>n";

$sth ->finish;

print "$err</body></html>n";


sub ConnectDB{
    $db_user = 'ユーザ名';    # 適宜変更
    $db_name = 'test';
    $db_pwd  = 'パスワード';    # 適宜変更

    $conn = DBI->connect("DBI:mysql:".$db_name, $db_user, $db_pwd);

    if($conn->errstr != ""){
        $err = $conn->errstr;

### ends here

これを /Library/WebServer/CGI-Executables/perl_dbi_mysql.cgi で保存したとすると、ブラウザで以下にアクセスしてみる。

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s