[an error occurred while processing this directive]
【Ports】MariaDB 5.5.30とMySQL 5.6.10 を触ってみましたよ

第351日目:【Ports】MariaDB 5.5.30とMySQL 5.6.10 を触ってみましたよ
【追記4 2013/03/25 10:45】
ども、ども、▲('A`)/です。
おはようございます。
えーと、今日は朝一でサポート業務をこなして、ようやっとコーヒー片手に
落ち着いていたら、知り合いからお知らせが・・・
なんでもFreeBSD本家サイトで8.4-BETA1が公開されているとの事。
いつの間にかリリーススケジュールも以下の内容で加筆されていました。

[8.4 リリーススケジュール]
(太字は実績、それ以外は予定日を表します。)

コードフリーズ: 3/8 -> 3/8
BETA1版公開:3/20 -> 3/22
ブランチタグ(releng/8.4)の設定: 3/18
RC1版公開:3/30
RC2版公開:4/5
RELEASE版構築:4/12
RELEASE版公開:4/19

これからdokuo号にインストールして、いつものベンチを
走らせてみます。
結果は後日日記でお知らせしますので、しばしお待ちを。

それでは、また!▲('A`)/

【追記3 2013/03/22 09:15】
ども、ども、▲('A`)/です。
おはようございます。
えーと、今朝PHP本家サイトを覗いたらPHP 5.5.0 beta1が公開されてました。
alpha版で開発が進められてきたPHP5.5系がいよいよbeta版を出しました。
5.5.0の目玉としては「Added Zend Opcache extension」でしょうかね。
Zend Optimizerのオペコードキャッシュを組み込んでいるとの事です。
(詳しい事はgoogleさんを使ってネットで調べてください。)
キャッシュの処理としてはBIG-Serverでも使っているAPCやZend等が
ありますが、今回はZend Optimizerの機能をPHP本体に組み込む為に
Zend Optimizerのソースを公開してオープンソース化しているという
副産物もあります。
いつ頃正式版が公開されることになるのか、注目したいと思います。

それでは、また!▲('A`)/

【追記2 2013/03/21 15:50】
ども、ども、▲('A`)/です。
えーと、日記の話題とは関係ないのですが、先ほどマイナビニュースを
見ていたらシマンテックさんが「Infared X-RAY」とかの不正アプリに
注意してね、というニュースを読んでました。
何かね、昔々に流行った「モザイク除去装置」の感じに似ているなあ、と
思いました。
エロに夢中の年頃は引っかかっちゃうのかもしれないですね。

それでは、また!▲('A`)/

【追記 2013/03/21 14:50】
ども、ども、▲('A`)/です。
えーと、念の為お知らせですが、portsの最新データにはlibreofficeの
新しいバージョン(4.0.1)が収録されています。(こんな感じです。)

# cat /usr/ports/japanese/libreoffice/distinfo
SHA256 (libreoffice/i18n/LibreOffice_4.0.1_Linux_x86_deb_langpack_ja.tar.gz) = 8d9031b2ea18e79bcbd5054e69df74f45c393fe17fef2a46fc0b55629210bdf1
SIZE (libreoffice/i18n/LibreOffice_4.0.1_Linux_x86_deb_langpack_ja.tar.gz) = 711332
SHA256 (libreoffice/i18n/LibreOffice_4.0.1_Linux_x86_deb_helppack_ja.tar.gz) = 0e4c9e44b3b3d34a8c28befec3c5a31449ba3ea1e9d93a1902e523ddd3cf80c4
SIZE (libreoffice/i18n/LibreOffice_4.0.1_Linux_x86_deb_helppack_ja.tar.gz) = 16675050
#

もし最新のlibreofficeをインストールしたい人はこれを入手してみてください。

それでは、また!▲('A`)/

↓ 本編はこちらです。

(2013/03/21 13:05)
ども、ども、▲('A`)/です。
えーと、今回はFreeBSDの最新portsに収録されたMariaDBとMySQL5.6系を
社内サーバにインストールして試してみました。

MariaDBはFreeBSDのports/packagesではこんな風に収録されています。

[ports](ソースを使ってのインストール)
8.3-release   5.2.10のみ
9.0-release   5.2.9のみ
9.1-release   5.3.8のみ
最新ports    5.3.12 & 5.5.30


[packages](バイナリでのインストール)
8.3-release   5.2.10のみ
8-stable    5.3.8のみ
9.0-release   5.2.9のみ
9.1-release   (***無し***)
9-stable    5.3.8のみ


MySQLについてはFreeBSDのports/packagesではこうなります。

[ports](ソースを使ってのインストール)

(8.3)
mysql41-server 4.1.25
mysql50-server 5.0.95
mysql51-server 5.1.61
mysql55-server 5.5.21
p5-DBD-mysql  4.020
p5-DBI      1.618

(9.0)
mysql41-server 4.1.25
mysql50-server 5.0.92
mysql51-server 5.1.60
mysql55-server 5.5.17
p5-DBD-mysql  4.019
p5-DBI      1.616

(9.1)
mysql41-server 4.1.25
mysql50-server 5.0.95
mysql51-server 5.1.66
mysql55-server 5.5.28
p5-DBD-mysql  4.021
p5-DBI      1.622

(最新)
mysql41-server 4.1.25
mysql50-server 5.0.95
mysql51-server 5.1.68
mysql55-server 5.5.30
mysql56-server 5.6.10
p5-DBD-mysql  4.021
p5-DBI      1.623


[packages](バイナリでのインストール)
(8.3)
mysql41-server 4.1.25
mysql50-server 5.0.95
mysql51-server 5.1.61
mysql55-server 5.5.21
p5-DBD-mysql  4.020
p5-DBI      1.618

(8-stable)
mysql41-server 4.1.25
mysql50-server 5.0.95
mysql51-server 5.1.65
mysql55-server 5.5.27
p5-DBD-mysql  4.021
p5-DBI      1.622

(9.0)
mysql41-server 4.1.25
mysql50-server 5.0.92
mysql51-server 5.1.60
mysql55-server 5.5.17
p5-DBD-mysql  4.019
p5-DBI      1.616

(9.1)‥‥存在せず

(9-stable)
mysql41-server 4.1.25
mysql50-server 5.0.95
mysql51-server 5.1.66
mysql55-server 5.5.28
p5-DBD-mysql  4.021
p5-DBI      1.622

えーと、MariaDBについては2009年10月29日に最初のバージョン(5.1.38)が
リリースされました。
それ以降はバージョンアップを続けて、今は開発版として10.0が作られています。
英語で書かれていますが、MariaDB10.0系はここのページを見る限りMySQL5.6系に
該当するようです。
同じく英語で書かれていますが、MariaDBの今までの流れを把握したい場合には、
MariaDBの本家サイトのこのページを見るとよいでしょう。
上記のページ等を見た限り、MariaDBとMySQLの各バージョンの対応関係は
こんな風になるようです。

MySQLのバージョン MariaDBのバージョン
5.1 5.1
5.2
5.3
5.5 5.5
5.610.0(?)

最近はLinux系でMySQLの代わりにMariaDBを採用するところが徐々に
出てきました。 まあ、政治的なことはよく判りませんが、今後の動向をよく見定めて
導入とかを考えた方が良いでしょう。

インストール方法ですが、portsからの場合にはこうなります。
最新portsの取得方法はportsnapを使ってください。前回の日記等で
コマンドの叩き方を書いているので、そちらを参考にしてください。

事前の注意点としては、MySQLがインストールされている場合には
前もって削除しておいてください。
MariaDBはMySQLをベースに開発されたソフトでして、稼動させるための
ユーザ/グループや起動スクリプト等もMySQLのものと同じ名称だったりします。
また、データベースのPerlハンドラ(p5-DBDとかp5-DBI等)もMySQLのものを
使う形となります。

今回はまっさらなマシンにインストールする場合を例に説明していきます。
インストールするMariaDBのバージョンは5.5.30とします。
インストール時に表示されるconfig画面は以下の様になります。

cd /usr/ports/databases/mariadb55-server
make install clean

  

これでMariaDBのserverとclientがインストールされます。
なお、関連付けされているソフトはcmakeです。
(MariaDBをコンパイルする時に必要になります。)
次はPerlハンドラをインストールです。

cd /usr/ports/databases/p5-DBD-mysql
make install clean

これでp5-DBD及びp5-DBIがインストールされます。

注意して欲しいのはMySQLと同じバージョンでしょ?なんて思って
p5-DBD-mysql55なんかを選んでインストールすると、以下の様に
portsから怒られます。

# cd /usr/ports/databases/p5-DBD-mysql55
# make install
===> p5-DBD-mysql55-4.021 cannot install: MySQL versions mismatch: mysql55m-client is installed and wanted version is mysql55-client.
*** Error code 1
Stop in /usr/ports/databases/p5-DBD-mysql55.
#

どうしてこうなるかと言いますと、バージョン付きのp5-DBD-mysqlでは
以下の様にMakefile内で赤色で表示した様にインストールされている
MySQLのバージョンチェックを行なっているからです。

# cat /usr/ports/databases/p5-DBD-mysql55/Makefile

# New ports collection makefile for: p5-DBD-mysql55
# Date created: 4 Jan 2010
# Whom: Alex Dupre <ale@FreeBSD.org>
#
# $FreeBSD: ports/databases/p5-DBD-mysql55/Makefile,v 1.3 2012/11/17 05:55:14 svnexp Exp $
#

PKGNAMESUFFIX= 55

COMMENT= MySQL 5.5 driver for the Perl5 Database Interface (DBI)

CONFLICTS= p5-Mysql-modules-[0-9]* p5-DBD-mysql-[0-9]* p5-DBD-mysql4[0-9]-[0-9]* p5-DBD-mysql5[0-46-9]-[0-9]*

WANT_MYSQL_VER= 55

MASTERDIR= ${.CURDIR}/../p5-DBD-mysql

.include "${MASTERDIR}/Makefile"
#

インストールが終わってMariaDBを動かしたい場合には、まず/etc/rc.confに
以下の1行を追記します。

mysql_enable="YES"

で、起動スクリプトは /usr/local/etc/rc.d に mysql-server という名前で
作られます。
参考までにスクリプトの中身を掲載します。

#!/bin/sh
#
# $FreeBSD: databases/mariadb55-server/files/mysql-server.in 309955 2013-01-05 11:30:51Z flo $
#

# PROVIDE: mysql
# REQUIRE: LOGIN
# KEYWORD: shutdown

#
# Add the following line to /etc/rc.conf to enable mysql:
# mysql_enable (bool):  Set to "NO" by default.
#                       Set it to "YES" to enable MySQL.
# mysql_limits (bool):  Set to "NO" by default.
#                       Set it to yes to run `limits -e -U mysql`
#                       just before mysql starts.
# mysql_dbdir (str):    Default to "/var/db/mysql"
#                       Base database directory.
# mysql_pidfile (str):  Custum PID file path and name.
#                       Default to "${mysql_dbdir}/${hostname}.pid".
# mysql_args (str):     Custom additional arguments to be passed
#                       to mysqld_safe (default empty).
#

. /etc/rc.subr

name="mysql"
rcvar=mysql_enable

load_rc_config $name

: ${mysql_enable="NO"}
: ${mysql_limits="NO"}
: ${mysql_dbdir="/var/db/mysql"}

mysql_user="mysql"
mysql_limits_args="-e -U ${mysql_user}"
pidfile=${mysql_pidfile:-"${mysql_dbdir}/`/bin/hostname`.pid"}
command="/usr/sbin/daemon"
command_args="-c -f /usr/local/bin/mysqld_safe --defaults-extra-file=${mysql_dbdir}/my.cnf \
 --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_args}"
procname="/usr/local/libexec/mysqld"
start_precmd="${name}_prestart"
start_postcmd="${name}_poststart"
mysql_install_db="/usr/local/bin/mysql_install_db"
mysql_install_db_args="--basedir=/usr/local --datadir=${mysql_dbdir} --force"

mysql_create_auth_tables()
{
        eval $mysql_install_db $mysql_install_db_args >/dev/null 2>/dev/null
        [ $? -eq 0 ] && chown -R ${mysql_user}:${mysql_user} ${mysql_dbdir}
}

mysql_prestart()
{
        if [ ! -d "${mysql_dbdir}/mysql/." ]; then
                mysql_create_auth_tables || return 1
        fi
        if checkyesno mysql_limits; then
                eval `/usr/bin/limits ${mysql_limits_args}` 2>/dev/null
        else
                return 0
        fi
}

mysql_poststart()
{
        local timeout=15
        while [ ! -f "${pidfile}" -a ${timeout} -gt 0 ]; do
                timeout=$(( timeout - 1 ))
                sleep 1
        done
        return 0
}

run_rc_command "$1"

起動方法は以下の通り。本当にMySQLと同じです・・・

起動  /usr/local/etc/rc.d/mysql-server start
停止  /usr/local/etc/rc.d/mysql-server stop
再起動 /usr/local/etc/rc.d/mysql-server restart

データベース本体は /var/db/mysqlに作成されます。こんな風に
# ls -l /var/db/mysql
total 28808
-rw-rw---- 1 mysql mysql 16384 Mar 21 03:31 aria_log.00000001
-rw-rw---- 1 mysql mysql 52 Mar 21 03:31 aria_log_control
-rw-rw---- 1 mysql mysql 5242880 Mar 21 03:31 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 Mar 21 03:31 ib_logfile1
-rw-rw---- 1 mysql mysql 18874368 Mar 21 03:31 ibdata1
drwx------ 2 mysql mysql 2048 Mar 21 03:31 mysql
drwx------ 2 mysql mysql 1024 Mar 21 03:31 performance_schema
drwx------ 2 mysql mysql 512 Mar 21 03:31 test
-rw-r----- 1 mysql mysql 2998 Mar 21 03:32 w44.maido3.cc.err
-rw-rw---- 1 mysql mysql 6 Mar 21 03:31 w44.maido3.cc.pid
#

起動した時にプロセスはこんな風に見えます。
まんまMySQLなんですよねえ・・・

  920  ??  Is     0:00.00 /bin/sh /usr/local/bin/mysqld_safe \
 --defaults-extra-file=/var/db/mysql/my.cnf --user=mysql --datadir=/var/db/mysql \
 --pid-file=/var
 1016  ??  I      0:00.18 /usr/local/libexec/mysqld \
 --defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local \
 --datadir=/var/db/mysql --plugin-dir=/us

使用しているポートもMySQLと同じ3306です。
確かめ方としては sockstat コマンドで以下の様に叩くと
こんな風に出てきます。

sockstat | grep [サービス名]
# sockstat | grep mysql
mysql mysqld 89315 14 tcp4 6 *:3306 *:*
mysql mysqld 89315 15 stream /tmp/mysql.sock
#

文字コードとか色々なパラメータを設定したい場合にはMySQLと同じく
/etc/my.cnf を設置してMySQLと同様の記述をすれば動くはずです。
※いちおうMariaDB本家のナリッジベースなどで確認してください。

さて、せっかくなのでMariaDBにログインしてみます。
インストールしたての状態だと、rootパスワードも設定されていません。
mysql -p でパスワード要求が出たら空ENTERでログインできます。

# mysql -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 1
Server version: 5.5.30-MariaDB Source distribution

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

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

MariaDB [(none)]> status;
--------------
mysql  Ver 15.1 Distrib 5.5.30-MariaDB, for FreeBSD9.1 (amd64) using readline 5.2

Connection id:          1
Current database:       
Current user:           root@localhost
SSL:                    Not in use
Current pager:          more
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         5.5.30-MariaDB Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    latin1
Conn.  characterset:    latin1
UNIX socket:            /tmp/mysql.sock
Uptime:                 15 min 49 sec

Threads: 1  Questions: 4  Slow queries: 0  Opens: 0  Flush tables: 2
  Open tables: 26  Queries per second avg: 0.004
--------------

MariaDB [(none)]> exit
Bye
# 

例えばphpMyAdminでどう見えるかと言いますと、こういう風になります。
(青丸で囲った部分がDB情報です。えーと、etc/my.cnfで文字コードをutf8に
設定した後でアクセスしたので、文字セットの所の表示がutf8になっています。)



えーと、今回はMySQL5.6も触ってみたのですが、こちらは
通常使う分には他のMySQLと変わりが無い様に感じます。
が、色々と機能が追加されたりしている反面、「性能が落ちた」と
言う人もいて、どうなのかな?と。

せっかくなので、前回からの日記の流れで、MySQL5.6とMariaDBの
自家製packages(Perl5.14.2ベース)を作ってみました。
こちら(▲('A`)の秘密基地)から入手可能ですので、自己責任でお願いします。
秘密基地には以前作ったデスクトップ版のパッケージなんかも
転がしていますので、どうぞ。

なお、上記パッケージでp5-DBD-mysqlをインストールする際には
ちゃんぽんでパッケージを使わないでくださいね。
(例えばMySQL5.6.10版のp5-DBD-mysqlをMariaDB 5.5.30版で
インストールしたマシンに対してインストールする、とか。)

今回作成したパッケージ達はそれぞれのバージョンの環境下で
構築したものですので、他のを混ぜると「入っているものと
違うよ!」と怒られますので・・・

それでは、また!▲('A`)/

350日目に戻る。   352日目に続く。

目次に戻る
1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
15日目 16日目 17日目 18日目 19日目 20日目 21日目
22日目 23日目 24日目 25日目 26日目 27日目 28日目
29日目 30日目 31日目 32日目 33日目 34日目 35日目
36日目 37日目 38日目 39日目 40日目 41日目 42日目
43日目 44日目 45日目 46日目 47日目 48日目 49日目
50日目 51日目 52日目 53日目 54日目 55日目 56日目
57日目 58日目 59日目 60日目 61日目 62日目 63日目
64日目 65日目 66日目 67日目 68日目 69日目 70日目
71日目 72日目 73日目 74日目 75日目 76日目 77日目
78日目 79日目 80日目 81日目 82日目 83日目 84日目
85日目 86日目 87日目 88日目 89日目 90日目 91日目
92日目 93日目 94日目 95日目 96日目 97日目 98日目
99日目 100日目 101日目 102日目 103日目 104日目 105日目
106日目 107日目 108日目 109日目 110日目 111日目 112日目
113日目 114日目 115日目 116日目 117日目 118日目 119日目
120日目 121日目 122日目 123日目 124日目 125日目 126日目
127日目 128日目 129日目 130日目 131日目 132日目 133日目
134日目 135日目 136日目 137日目 138日目 139日目 140日目
141日目 142日目 143日目 144日目 145日目 146日目 147日目
148日目 149日目 150日目 151日目 152日目 153日目 154日目
155日目 156日目 157日目 158日目 159日目 160日目 161日目
162日目 163日目 164日目 165日目 166日目 167日目 168日目
169日目 170日目 171日目 172日目 173日目 174日目 175日目
176日目 177日目 178日目 179日目 180日目 181日目 182日目
183日目 184日目 185日目 186日目 187日目 188日目 189日目
190日目 191日目 192日目 193日目 194日目 195日目 196日目
197日目 198日目 199日目 200日目 201日目 202日目 203日目
204日目 205日目 206日目 207日目 208日目 209日目 210日目
211日目 212日目 213日目 214日目 215日目 216日目 217日目
218日目 219日目 220日目 221日目 222日目 223日目 224日目
225日目 226日目 227日目 228日目 229日目 230日目 231日目
232日目 233日目 234日目 235日目 236日目 237日目 238日目
239日目 240日目 241日目 242日目 243日目 244日目 245日目
246日目 247日目 248日目 249日目 250日目 251日目 252日目
253日目 254日目 255日目 256日目 257日目 258日目 259日目
260日目 261日目 262日目 263日目 264日目 265日目 266日目
267日目 268日目 269日目 270日目 271日目 272日目 273日目
274日目 275日目 276日目 277日目 278日目 279日目 280日目
281日目 282日目 283日目 284日目 285日目 286日目 287日目
288日目 289日目 290日目 291日目 292日目 293日目 294日目
295日目 296日目 297日目 298日目 299日目 300日目 301日目
302日目 303日目 304日目 305日目 306日目 307日目 308日目
309日目 310日目 311日目 312日目 313日目 314日目 315日目
316日目 317日目 318日目 319日目 320日目 321日目 322日目
323日目 324日目 325日目 326日目 327日目 328日目 329日目
330日目 331日目 332日目 333日目 334日目 335日目 336日目
337日目 338日目 339日目 340日目 341日目 342日目 343日目
344日目 345日目 346日目 347日目 348日目 349日目 350日目
351日目 352日目 353日目 354日目 355日目 356日目 357日目
358日目 359日目 360日目 361日目 362日目 363日目 364日目

いま一番お得なページ! 解析
[an error occurred while processing this directive]