mysql チュートリアル
概要
インストールしてから実際に動作させるまでの流れ
実行環境
チュートリアル
基本的な起動~停止
# mysqld 起動
/opt/mysql/support-files/mysql.server start
# mysqld 停止
/opt/mysql/support-files/mysql.server stop
# mysqld 再起動
/opt/mysql/support-files/mysql.server restart
起動スクリプト組み込み
# 起動スクリプト作成
cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
# REDHAT系管理登録
chkconfig --add mysqld
# サービス起動
service mysqld start
# サービス停止
service mysqld stop
# サービス再起動
service mysqld restart
ログイン
# DBアクセス
mysql
# ユーザ指定
mysql -uroot
# パスワードを使用してログイン
mysql -uroot -p
# パスワードをコンソールで指定してログイン
mysql -uroot -proot_pass
# DBを指定してログイン
mysql -uroot -Dmysql
レプリケーション構築
構築手順
Master サーバ
my.cnfに以下の記述を実施
[mysqld]
log-bin=mysql-bin
server-id=1
mysqlを再起動
./support-files/mysql.server restart
Slaveサーバ
my.cnfに以下の記述を実施
[mysqld]
server-id=2
Masterサーバ
SlaveからレプリケーションSlaveとしてアクセスできるようにユーザ作成と権限を付与
CREATE USER 'repl'@'%.slave.mydomain.com' IDENTIFIED BY 'slavepass';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.slave.mydomain.com';
MasterDBのステータスを確認
-- データに変更がないようにテーブルロックを獲得
FLUSH TABLES WITH READ LOCK;
-- File と Positionを確認
SHOW MASTER STATUS;
レプリケーションを実施する前にMasterDBとSlaveDBで同期を実施する
この際、ターミナルエミュレータなどのコンソールを2つ用意する
1つ目のセッション
-- テーブルロックを獲得してDBへの更新をとめる
FLUSH TABLES WITH READ LOCK;
2つ目のセッション
# mysqldump コマンドを使用してMasterDBのバックアップを実施
mysqldump --all-databases --master-data > dbdump.sql
1つ目のセッション
-- 獲得していたテーブルロックを解除する
UNLOCK TABLES;
Slaveサーバ
MasterからダンプしたDBデータをリストアする
mysql < dbdump.sql
MySQLを再起動
./support-files/mysql.server restart
MasterDBへの接続情報をセット
CHANGE MASTER TO MASTER_HOST='%.master.mydomain.com', MASTER_USER='repl', MASTER_PASSWORD='slavepass', MASTER_PORT=3306;
レプリケーションスタート
START SLAVE;
レプリケーションステータス
SHOW SLAVE STATUS \G
ダンプ(バックアップ)
MySQLに付属しているダンプツールであるmysqldumpはダンプ内容を標準出力に出します。
標準出力に出されても困ることがほとんどなのでここではファイルに保存することを前提にしています。
# DB内のすべてのテーブルをダンプ
mysqldump [dbname] > [filename]
# テーブルを指定してダンプ
# テーブル名はいくつ指定しても可
mysqldump [dbname] [table name]> [filename]
Today: -
Yesterday: -
Total: -
最終更新:2012年12月21日 09:40