*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 --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 ~ &size(16){&font(b){5. 注意事項};}; -&font(b){&color(#ff0000){MySQL5.7.4以上を使う時のパスワードリミット};}; MySQL5.7.4で導入されたユーザパスワードの更新リミッタが、デフォルト状態だと360日に設定されている。 その為、"/etc/my.cnf"の[mysqld]項目に下記のコンフィグを入れないで稼働させ、 パスワードを変更しないまま利用すると、360日経過した時にユーザがロックされてしまう。 default_password_lifetime=0 ~ ロックされたユーザではMySQLにログインは出来るが、 &font(b){ユーザパスワード変更以外の操作が出来ない状態};(=通常のDB操作が不可能)になる。 この状態を解除するには、次のどちらかを実行する。 --mysql.usrテーブルのpassword_last_changedを書き換える --"default_password_lifetime=0"を書いた後に、MySQLをリスタート