○ MySQL-5.0.67のインストール

*xoopsサイト構築のためデータベースとして利用します
*mysql-5.0.67をソースからインストールし、設定しています
*mysql-4.0.xとmysql-5.0.xでは構造的に大きな違いがあります
*ALLFreeなライセンスでないので注意します
*datadirを/home/mysqlに変更しています

**以降はコメントです
*エディタ、ファイラーの操作は省略します
*説明文 (英文) を読みましょう
*Enterキーを省略します

*ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
*設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:mysql-5.0.67.tar.gz  (http://dev/mysql.com/)

○参照ファイル

パッケージの追加
最初の設定 (Xen)
opensslのインストール

○インストール環境

:OS CentOS 5.2
:selinux disabled or permissive
:インストール先  /usr/local/
:作業 /usr/src
:言語 en_US.UTF-8
:ユーザー rootで実行

*メンテナンスの場合は一般ユーザから行います



○mysql-5.0.67

○ユーザmysqlの作成

uid/gid情報を参照
*ログの出力先はmy.cnfで指定しています

# useradd -M -u 27 -d /home/mysql -s /sbin/nologin mysql
# mkdir -m 751 /var/lib/mysql
# touch /var/lib/mysql/mysqld-err.log
# touch /var/lib/mysql/mysqld.log
# chown -R mysql:mysql /var/lib/mysql

○mysqlのインストール

*openssl-develを必要とします
*環境変数の初期化のためインストール後、ログアウトします

# cd /usr/src
# tar zxvf mysql-5.0.67.tar.gz
# chown -R root:root mysql-5.0.67
# cd mysql-5.0.67
# make distclean

*コンフィグシェルスクリプトを実効します
*同じディレクトリで実行します
mysql50cfg.sh (詳細別記)

# source mysql50cfg.sh
# make
# make install
# cd ..
# tar cf mysql-5.0.67-080809.tar mysql-5.0.67/
# bzip2 mysql-5.0.67-080809.tar

○キャッシュ情報の更新

*/etc/ld.so.conf.d/mysql.confに既述します

# echo  /usr/local/lib/mysql >> /etc/ld.so.conf.d/mysql.conf

*キャッシュの更新

# ldconfig
# ldconfig -p | grep mysql

○サーバ用my.cnfのコピー

*/usr/local/share/mysqlからmy-medium.cnfをコピーします
*configureで指定しないと/usr/local/etc/my.cnfになります

# cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf

○/etc/my.cnfファイルを修正します

/étc/my.cnf (詳細別記)

○MySQLシステムデータベースをつくります

*mysql_install_dbを実行します
*my.cnfを読み込んで/home/mysqlが作られます
*/home/mysqlのユーザ・グループ・パーミッションを変更します

# mysql_install_db
# chown -R mysql:mysql /home/mysql
# chmod 751 /home/mysql

○自動起動スクリプトの修正

*起動ファイルをコピーします

# cp /usr/local/share/mysql/mysql.server /etc/init.d/mysql

:/etc/rc.d/init.d/mysql

灰色部分 削除
紫色部分 変更

*省略

# Comments to support chkconfig on RedHat Linux
# chkconfig: 235 64 36
# description: A very fast and reliable SQL database engine.

# Comments to support LSB init script conventions
### BEGIN INIT INFO
# Provides: mysql
# Required-Start: $local_fs $network $remote_fs
# Should-Start: ypbind nscd ldap ntpd xntpd
# Required-Stop: $local_fs $network $remote_fs
# Default-Start:  2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop MySQL
# Description: MySQL is a very fast and reliable SQL database engine.
### END INIT INFO

*省略


○tcp_wrappersで制御します

*--with-libwrapオプション付の場合 /etc/hosts.allow、hosts.denyで制御します

:/etc/hosts.allow

ALL: 127.0.0.1
mysqld: 192.168.0. EXCEPT 192.168.0.21

:/etc/hosts.deny

ALL: ALL

○selinuxヘの対応 (selinuxが有効の場合)

:新規インストールファイルのselinuxラベルを修正

# restorecon -Rv /etc
# restorecon -Rv /usr/local
# restorecon -RFv /home/mysql
# restorecon -Rv /var/lib

○mysqlの起動

:自動起動をonにし、mysqldを起動します

# chkconfig --add mysql
# service mysql start

:rootパスワードを設定します

*linux管理者のrootではないので、パスワードは変えます
*フルドメイン名はmysqlを設置したサーバ名です
*/root/.bash_historyにパスワードが平文で記録されるので注意

# mysqladmin -u root password 'xxxxxxxxxx'
# mysqladmin -u root -h earth.528p.com password 'xxxxxxxxxx'

○mysqlログのローテーション

:/ete/logrotate.d/mysql

*MySQL-5.0.67で新規に作られるmysql-log-rotateではパスワードを要求されます

/var/lib/mysql/mysqld.log /var/lib/mysql/mysqld-err.log {
    rotate 4
    create
    missingok
    prerotate
    [ -e /var/lock/subsys/mysqld ] && /bin/kill -HUP \
    `cat /var/lib/mysql/mysqld.pid  2> /dev/null ` || /bin/true
    endscript
    postrotate
    [ -e /var/lock/subsys/mysqld ] && /bin/kill -HUP \
    `cat /var/lib/mysql/mysqld.pid  2> /dev/null ` || /bin/true
    endscript
}

:logrotationの確認

# logrotate -f /etc/logrotate.d/mysql

*うまくいかない場合、設定ファイルを修正します
*ただし、var/lib/logrotate.statusに前回rotateした日付が設定されます
*logrotate.statusの日付をエディタで修正します
*調整後は/etc/logrotate.confと重複する設定をコメントにします
*"rotate 4" "create" など

mysql-log-rotate (参考)

*mysqladminを利用してログをフラッシュします
*root (mysql管理者) のパスワードを要求します



○簡単なmysqlの操作

*/root/.mysql_historyにパスワードが平文で記録されるので注意
*root (mysql管理者) でログインします

# mysql -u root mysql -p
password:← パスワードを入力

*データベースの作成 (例 xoopsdata)

mysql> create database xoopsdata;

*データベースに全権を持つユーザーの作成
 (例 xoopsdata,ユーザーuranus,パスワードyyyyyyyyyy)

mysql> grant all on xoopsdata.* to uranus@localhost identified by 'yyyyyyyyyy';
mysql> flush privileges;

*データベースの削除 (例 test)

mysql> drop database test;
mysql> flush privileges;

*匿名ユーザーの削除

mysql> delete from mysql.user where user='';
mysql> flush privileges;

*データベースの表示

mysql> show databases;

*ユーザーテーブルの表示

mysql> select host,user,password from mysql.user;

*ログアウト

mysql> exit;

○ Copyright(c) 528p.com All Rights Reserved.