/dev/null

(◞‸◟)

CentOS 6.4にMySQL5.6をソースからインストール

今度はMySQLでございます。

サックリいくといいですね。

ちなみにMySQLOracleの持ち物になってしまい、5年間は無償で公開されるのが決まっていますがその後は分かりません。

テストケースなどが既に非公開になりはじめていますので、暗雲。

そこでRHELCentOSの親は既に標準RDBMSMySQLからMariaDBに切り替えています。

ArchLinux,Fedora,suseとかでもMariaDBに切り替わっているのでこれからはMariaDBだよね〜〜〜とか言っておくと通ぶれます。

MariaDBMySQLソースコードから派生したもの、しかも作者はMySQLの作者ってことで殆ど同じ。

気になるのは今のところ、MySQLのコードが公開されているから追従出来るけどもし5年後にクローズドソースになったらMariaDBはどうなるんだろうって事ですかね。

それはそうと能書きはいいのでとりあえずインストールしましょう。

インストール

公式サイトからソースコードをダウンロード

http://dev.mysql.com/downloads/mysql/#downloads

ここのselectメニューからSource Codeを選択して

Generic Linux (Architecture Independent), Compressed TAR Archive 5.6.12 34.2M
Download (mysql-5.6.12.tar.gz)

を選びます

多分「ログインするか登録してね☆」みたいな表示になるけど華麗にスルーキメて

下部にあるNo thanks, just start my download.を選びます

悲しいかな、クライアントのブラウザでDLが始まってしまいました。

慌てず騒がずDLのURLを取得してサーバーでwgetしよ

wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.12.tar.gz

解凍

tar zvxf mysql-5.6.12.tar.gz

そしていつものconfigure

だがしかし!!!!!!

configureがない!!!!!

configure.cmake とかあるのに〜〜〜〜〜!!!!!!

というわけで、MySQLはcmakeというものが必要です。

sudo yum -y install cmake

できたらcmake

/usr/bin/cmake . -DDEFAULT_CHARSET=utf8mb4 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8mb4_general_ci -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1

-DCMAKE_INSTALL_PREFIXは./configure --prefix=みたいなものでインストールするディレクト

-DDEFAULT_CHARSET=utf8mb4はデフォルトのキャラクターセットをutf8mb4に。

なんでutf8じゃないの??って言うのは絵文字扱うようになったら便利ってやつだ。4バイト文字が格納出来るからな

http://qiita.com/PGMY@github/items/4529494b7205ae0b2672

-DWITH_EXTRA_CHARSETS=allで文字セット全部いれとけ

-DDEFAULT_COLLATION=utf8mb4_general_ciは-DDEFAULT_CHARSET=utf8mb4をつけたときに一緒にやるのが常らしいっす

他にも沢山のオプションがあり、よく分かりません。InnoDBとかを組み込むのには-DWITH_INNOBASE_STORAGE_ENGINE=1をつけたり?

http://dev.mysql.com/doc/mysql-sourcebuild-excerpt/5.5/en/source-configuration-options.html

cmakeでハマるのはcmakeってフォルダ内で打つとusageだけでてしまうことかな。

cmake .

のようにカレントフォルダで実行するのを明示するためにドットを入れましょう。

で終わったらmake

やたらカラフルで親切なログが流れている

案外時間がかかるのでこの間に別の仕込みをしましょう

お料理番組的なアレね

MySQLを動かすユーザを作ります。postgresの時もしろよ

sudo groupadd mysql

sudo useradd -g mysql -d /usr/local/mysql mysql

結構時間かかるけどゆっくりしていってね

sudo make install

これでインストールは終わり。

起動

とりあえず起動までやります。

データディレクトリを追加

sudo mkdir /var/lib/mysql

所有権をmysql

sudo mkdir /var/lib/mysql

chown -R mysql:mysql /usr/local/mysql

初期設定的な何か


sudo /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/var/lib/mysql -basedir=/usr/local/mysql 

なんとか通りました。

起動時に出来たファイルも所有権変更

sudo chown mysql:mysql -R /var/lib/mysql/*

起動スクリプトをコピーします。デフォルトで付いてるのはイイネ

sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

起動〜〜〜!!

$ sudo /etc/init.d/mysqld start  
Starting MySQL. SUCCESS! 

やったね

そして接続してみるお

sudo /usr/local/mysql/bin/mysql -u root

しかし

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

とかいうエラーが。

なんか接続するソケットが云々とかいうアレ

設定ファイルを編集します

vi /etc/my.conf

[mysqld]

socket=/tmp/mysql.sock

[client]

socket=/tmp/mysql.sock

となるように適宜編集。

んでMySQL再起動

sudo /etc/init.d/mysqld restart

でもっかい接続

[~]$ sudo /usr/local/mysql/bin/mysql -u root                                                                                [1:01:47]
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.12 Source distribution

Copyright (c) 2000, 2013, 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
owners.

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

mysql> 

やったね✌('ω')✌

あとは適当にユーザ作るなりなんなりしましょう。rootは良くないらしいしね

とりあえずrootにパスつけとこか

mysqlに接続した状態で

set password for root@localhost=password('newpassword');

これをした状態で接続したら

[~]$ sudo /usr/local/mysql/bin/mysql -u root                                                                                

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

オッケーですね

[~]$ sudo /usr/local/mysql/bin/mysql -u root -p

これからは-pオプションでいこうね。

次回は何にしようかな。