CentOS 6.4にMySQL5.6をソースからインストール
今度はMySQLでございます。
サックリいくといいですね。
ちなみにMySQLはOracleの持ち物になってしまい、5年間は無償で公開されるのが決まっていますがその後は分かりません。
テストケースなどが既に非公開になりはじめていますので、暗雲。
そこでRHEL、CentOSの親は既に標準RDBMSをMySQLからMariaDBに切り替えています。
ArchLinux,Fedora,suseとかでもMariaDBに切り替わっているのでこれからはMariaDBだよね〜〜〜とか言っておくと通ぶれます。
MariaDBはMySQLのソースコードから派生したもの、しかも作者は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オプションでいこうね。
次回は何にしようかな。