![]() |
LINUX |
MySQLのインストール
*xoopsサイト構築のためデータベースとして利用します
*mysql-5.1.49をソースからインストールし、設定しています
*mysql-4.0.xとmysql-5.1.xでは構造的に大きな違いがあります
*ALLFreeなライセンスでないので注意します
*datadirを/home/mysqlに変更しています
*make はメンテナンスマシンで行っています
**以降はコメントです
*エディタ、ファイラーの操作は省略します
*説明文 (英文) を読みましょう
*Enterキーを省略します
*ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
*設定ファイルで "#" で始まる行はコメントとして解釈されます
関連サイト:mysql-5.1.49.tar.gz (http://dev/mysql.com/)
参照ファイル
:パッケージの追加
:最初の設定 (Xen)
:opensslのインストール
インストール環境| :OS | CentOS 5.5 |
| :selinux | disabled or permissive |
| :インストール先 | /usr/local/ |
| :作業 | /usr/src |
| :言語 | en_US.UTF-8 |
| :ユーザー | rootで実行 |
*メンテナンスの場合は一般ユーザから行います
mysql-5.1.49
ユーザmysqlの作成*uid/gid情報を参照します
*log-bin用のディレクトリを作成しておきます
# useradd -M -u 27 -d /home/mysql -s /sbin/nologin mysql # mkdir -m 700 -p /home/mysql/log-bin # mkdir /var/lib/mysql # chown -R mysql:mysql /var/lib/mysql
mysqlのインストール*openssl-develを必要とします
# cd /usr/src
# tar zxvf mysql-5.1.49.tar.gz
# chown -R root:root mysql-5.1.49
# cd mysql-5.1.49
# make distclean
*コンフィグシェルスクリプトを実効します
*同じディレクトリで実行します
*mysql5cfg.sh (詳細別記)
# source mysql5cfg.sh # make # make uninstall # make install # cd .. # tar cf mysql-5.1.49-100724.tar mysql-5.1.49/ # bzip2 mysql-5.1.49-100724.tar
キャッシュ情報の更新*/etc/ld.so.conf.d/mysql.confに既述します
*mysql-5.0.xライブラリのso-versionは、(15) になっています
*mysql-5.1.xライブラリのso-versionは、(16) になっています
*mysqlのライブラリを使用しているソフトウェアは再構築の必要あり?
# 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ファイルを修正します
MySQLシステムデータベースをつくります*mysql_install_dbを実行します
*my.cnfを読み込んで/home/mysqlにデータベースが作られます
*/home/mysqlのユーザ・グループ・パーミッションを変更します
*mysql-5.0.Xの既存のDBを使う場合はmysql_install_dbを実行しない
*下記参照
# 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-5.0.Xの既存のDBを使う*既存ファイルのバックアップ
*mysql_upgrade を実行します(xxxxxxxxxxはmysql管理者[root]のパスワード)
# cp -a /home/mysql /home/mysql-orig # mysql_upgrade --password=xxxxxxxxxx
*省略
Running 'mysql_fix_privilege_tables'... OK # service mysql restart
mysqlログのローテーション*MySQL-5.1.49に含まれるmysql-log-rotateを参考にします
*mysqladminコマンドはmysql管理者のパスワードを要求します
*起動スクリプトをreloadオプションで実行します
:/etc/mysql-log-rotate
/var/lib/mysql/*.log {
create 660 mysql mysql
notifempty
weekly
rotate 4
missingok
sharedscripts
postrotate
/etc/rc.d/init.d/mysql reload 2>/dev/null || true
endscript
}
:logrotationの確認
*うまくいかない場合、設定ファイルを修正します
*var/lib/logrotate.statusにrotateした日付が設定されます
# logrotate -fv /etc/mysql-log-rotate
cronデーモンで定期的にローテーション*cron.dailyのlogrotateではmysqlスクリプトの実行に失敗します
*/etc/cron.d に設定ファイルを置きます (ユーザ・グループ・パーミッションに注意)
*MAILTO="" はメールを送信しない設定です (デフォルトは実行者にメールを送信)
*日曜日の4時1分に logrotate を -f(force) オプションで実行します
*行末に改行を入れること
:/etc/cron.d/mysql (root root 644)
MAILTO="" 01 4 * * 0 root /usr/sbin/logrotate -f /etc/mysql-log-rotate
簡単な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. |

