同一OS上に複数のMySQLサーバを構築

更新日2008-10-22 (水) 16:42:59

同一OS上に複数のMySQLサーバを構築

複数のサーバをのときはレプリケーションを設定時はSLAVE設定も(2)のように個々に行う必要があるようだ。また、SLAVEに対する処理は

/usr/bin/mysql -u root -p -S /var/lib/mysql_uso5004/mysql1.sock moodle

のように、-Sでソケットを指定してMySQLに入り処理する。

my.cnfに追加

[mysqld_multi]

mysqld = /usr/bin/mysqld_safe

mysqladmin = /usr/bin/mysqladmin
 

[mysqld1] <=(1)

socket = /var/lib/mysql1/mysql1.sock

port = 3307

pid-file = /var/lib/mysql1/mysql.pid1

datadir = /var/lib/mysql1

## REPLICATION SLAVE SETTING <=(2)
server-id = 4                <=絡むホストはユニークする必要があるようだが
2台のMASTERがあるときそのMASTER間もユニークか否かは不明。ユニークが無難かな
character-set-server = utf8
read-only
##replicate-do-db = t_test

必要ディレクトリ作製とDB初期化

# mkdir /var/lib/mysql1
# mysql_install_db --datadir=/var/lib/mysql1

# chown -R mysql.mysql /var/lib/mysql1

起動
mysqld_multiで起動する番号は(1)で指定した[mysqld(No)]のNoを意味し,
複数指定は1-6または1,2,3などと指定する。

# /etc/rc.d/init.d/mysql restart 
# /usr/bin/mysqld_multi start 1

停止

# /usr/bin/mysqld_multi stop 1

ログを確認

/usr/bin/mysqld_multi --no-log start 1

./mysql-bin.index' not found (Errcode: 13)のエラーが出ているときは/var/lib/mysql1のオーナがmysqlでない。これを変更すると消えた。

# netstat -an | grep -i tcp
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:39337           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:3307            0.0.0.0:*               LISTEN <=Port3307がある。

別サーバ確認

別サーバ指定は -Sのソケットで指定する。

$ /usr/bin/mysqlshow -u -p -S /var/lib/mysql1/mysql1.sock
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| test               |
+--------------------+

別サーバにログイン

$ /usr/bin/mysql -u -p -S /var/lib/mysql1/mysql1.sock

パスワード作製

$ /usr/bin/mysqladmin -u root -S /var/lib/mysql1/mysql1.sock password '****';

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-10-22 (水) 16:42:59 (3652d)