*MySQL [#d6256ed2]
[[MySQL:+http://dev.mysql.com/]]
[[mariaDB:+https://mariadb.org/]]
MySQL vs mariaDBが続いているけれど、ぶっちゃけ中身はほぼ同じなのでどっちでも良い。
一応、mariaDBの方が高機能らしいが殆ど変わらないと思う。
MySQL5.5から&font(b){./configureではなく、cmakeを使う};ようになった。
~
*インストール [#u7d6d771]
&size(16){&font(b){1. ビルド};};
 //MySQL 5.1系統
 # tar zxvf mysql-5.1.73.tar.gz
 # cd mysql-5.1.73
 # ./configure --prefix=/usr/local/mysql --without-readline
 # make
 # make install
 
 //MySQL 5.5系統
 # tar zxvf mysql-5.6.15.tar.gz
 # cd mysql-5.6.15
 # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
 # make
 # make install

cmakeのオプションは[[MySQLのオフィシャル>+http://dev.mysql.com/doc/mysql-sourcebuild-excerpt/5.7/en/source-configuration-options.html]]に書いてある
~
&size(16){&font(b){2. MySQLの設定・起動準備};};
&font(b){&color(#ff0000){x86_64のOSを使っているのなら、下を必ず行う事!!};};
PHPとかのconfigure時に"--with-libdir=lib64"を指定すると、lib64を見に行ってしまって転ける
 # ln -s /usr/local/mysql/lib /usr/local/mysql/lib64
~
MySQL用のユーザを作成する。
 # groupadd mysql
 # useradd -g mysql -d /var/mysql -s /sbin/nologin mysql
 # rm -rf /var/mysql/*
 # rm -rf /var/mysql/*.*
~
起動スクリプトの設置を行う。コピーしたスクリプトの中身も書き換える。
 # {MySQLのソースコード}/support-files/mysql.server /etc/init.d/mysqld
 # chmod 755 /etc/init.d/mysqld
 # chkconfig --add mysqld
 # chkconfig mysqld on
~
MySQLのデータベースを初期化する。
 # /usr/local/mysql/scripts/mysql_install_db --user=mysql --ldata=/var/mysql
 # /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --user=mysql --ldata=/var/mysql
~
&size(16){&font(b){3. MySQLの起動後設定};};
起動した後に、データベース内のゴミを削除する。
 # /etc/init.d/mysqld start
 # mysqladmin -u root password {MySQLのrootユーザパスワード}
 
 # mysql -u root -p
 Enter password: {MySQLのrootユーザパスワード}
 > use mysql;
 > delete from user where user='';
 > delete from user where password='';
 > drop database test;
 > flush privileges;
 > exit
~
&size(16){&font(b){4. MySQLのユーザ・パスワード・データベース登録};};
(例) ユーザ:hoge , パスワード:pass , データベース名:bar
 # mysql -u root -p
 Enter password: {MySQLのrootユーザパスワード}
 > create database bar;
 > grant all on bar.* to hoge identified by 'pass';
 > flush privileges;
 > exit