2015年5月25日2021年2月11日

Mac OS X YosemiteにMySQL5.6をソースコードからインストール

Max OS X YosemiteにLAMP環境(Linux,Apache,MySQL,PHP)をソースコードからインストールするシリーズのMySQL編です。

cmakeのインストール

MySQLのビルドにはCMake(http://www.cmake.org/)というビルド環境が必要です。

./configure --prefix='/インストール先のパス'
make test
make install

MySQL5.6のソースコードをダウンロード

MySQL(https://www-jp.mysql.com/)のダウンロードページ下部(わかりにくい)の、
”MySQL Community Edition (GPL)”というリンクを開き、”MySQL Community Server”をダウンロードします。
”Mac OS X 10.9 (x86, 64-bit), Compressed TAR Archive”というMac向けのソースコードがダウンロードできるようになっています。(本記事の作成時点でのファイル名です。)

MySQL5.6のビルド&インストール

ソースコードを展開し、CMakeとmakeを使ってビルド&インストールします。

cmake -DCMAKE_INSTALL_PREFIX='/インストール先のパス'
make test
make install

MySQLの初期設定

MySQLの設定

etcディレクトリ作成と設定ファイル(my.cnf)設置

MySQLのインストールディレクトリ内にetcディレクトリを作成し、
ソースコードの”support-files”ディレクトリの中にある
“my-default.cnf”ファイルを”my.cnf”という名前でetcディレクトリにコピーします。

my.cnfファイル編集

[mysqld]
~省略~
#インストール先のディレクトリ指定
basedir = /Users/ユーザ名/programs/mysql
#データの保存先指定
datadir = /Users/ユーザ名/programs/mysql/data
#ソケットファイルの作成先指定
socket = /Users/ユーザ名/programs/mysql/lib/mysql.sock
#ポート指定
port = 3306
~省略~
#文字コード指定
character-set-server = utf8
#
 [client]
#ソケットファイルの作成先指定
socket = /Users/ユーザ名/programs/mysql/lib/mysql.sock
#ポート指定
port = 3306

ソケットファイル(mysql.sock)の作成先はPHPとMySQLを連携させる時に必要になります。
ちなみにmysql.sockファイルはMySQLが起動している間だけ作成されます。
また、標準状態のFinderからは見えません。ターミナルで’ls -la’などすると作成されていることが確認できます。

MySQLの初期化

scriptsディレクトリ内にあるmysql_install_dbを実行します。

MySQLのインストールディレクトリ/scripts/mysql_install_db

MySQLを使うためのデータベースなどが作成されます。

MySQLの起動・停止

MySQLの起動と停止を確認します。インストールディレクトリのbin内にあるmysqldとmysqladminというプログラムを使用します。

MySQLの起動

./mysqld

MySQLの停止

./mysqladmin -u root shutdown

PHPとの連携設定

PHPプログラムからMySQLを利用するための設定を行います。
php.iniを編集します。先ほどmy.cnfで指定したmysql.sockへのパスを記述します。

[pdo]
pdo_mysql.default_socket = /Users/ユーザ名/programs/mysql/lib/mysql.sock
[mysql]
mysql.default_socket = /Users/ユーザ名/programs/mysql/lib/mysql.sock

PHPからのMySQL接続テスト

MySQLでユーザとデータベースを作成してあることを前提として、PHPからMySQLを利用するテストです。

$user = 'MySQLユーザ名';
$pass = 'MySQLユーザのパスワード';

try {
	$dbh = new PDO('mysql:host=localhost;dbname=データベース名;charset=utf8', $user, $pass);
}catch (PDOException $e){
	exit('DB接続エラー'.$e->getMessage());
}

$stmt = $dbh->query("SELECT * FROM テーブル名");
while($row = $stmt -> fetch(PDO::FETCH_ASSOC)){
	echo $col_1 = $row["キー名1"];
	echo $col_2 = $row["キー名2"];
}

$dbh = null;

最初、mysql_connect()で接続しようとしたのですが、今のPHPでは推奨されてないんですね。
時代は流れているのですね(´・ω・`)。

コメントはこちらから

メールアドレスは公開されません。 * が付いている欄は必須項目です

タグ一覧

© 2021 びわ湖のほとりの人 All Rights Reserved.