資料庫--一主多從
阿新 • • 發佈:2018-11-26
多實列及其一主多從
建立存放資料庫資訊的目錄
[[email protected] ~]# mkdir /data/330{7..9} –p
建立存放配置檔案的檔案
[[email protected] ~]# touch /data/330{7..9}/my.cnf
編輯3307配置檔案
[[email protected] ~]# vim /data/3307/my.cnf [mysqld] basedir=/application/mysql datadir=/data/3307/data socket=/data/3307/mysql.sock log_error=/data/3307/mysql.log log-bin=/data/3307/mysql-bin server_id=7 port=3307 [client] socket=/data/3307/mysql.sock //指定了3307資料庫的sock的檔案
編輯3308配置檔案
[[email protected] ~]# vim /data/3307/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
log-bin=/data/3308/mysql-bin
server_id=8
port=3308
[client]
socket=/data/3308/mysql.sock
編輯3309配置檔案
[[email protected] ~]# vim /data/3309/my.cnf [mysqld] basedir=/application/mysql datadir=/data/3309/data socket=/data/3309/mysql.sock log_error=/data/3309/mysql.log log-bin=/data/3309/mysql-bin server_id=9 port=3309 [client] socket=/data/3309/mysql.sock
初始化3307資料庫
[[email protected] ~]#/application/mysql/scripts/mysql_install_db \
--user=mysql \
--defaults-file=/data/3307/my.cnf \
--basedir=/application/mysql --datadir=/data/3307/data
初始化3308資料庫
[[email protected] ~]#/application/mysql/scripts/mysql_install_db \ --user=mysql \ --defaults-file=/data/3308/my.cnf \ --basedir=/application/mysql --datadir=/data/3308/data
初始化3309資料庫
[[email protected] ~]#/application/mysql/scripts/mysql_install_db \
--user=mysql \
--defaults-file=/data/3309/my.cnf \
--basedir=/application/mysql --datadir=/data/3309/data
修改許可權
[[email protected]]# chown -R mysql.mysql /data/330*
啟動實列
[[email protected]]# mysqld_safe --defaults-file=/data/3307/my.cnf &
[[email protected]]# mysqld_safe --defaults-file=/data/3308/my.cnf &
[[email protected]]# mysqld_safe --defaults-file=/data/3309/my.cnf &
登陸資料庫
[[email protected]]# mysql -S /data/3307/mysql.sock -e "show variables like 'server_id'"
[[email protected]]# mysql -S /data/3308/mysql.sock -e "show variables like 'server_id'"
[[email protected]]# mysql -S /data/3309/mysql.sock -e "show variables like 'server_id'"
以上實列配置(一主多從)
以3307做為主庫
[[email protected]]# mysql -S /data/3307/mysql.sock -e "show variables like 'server_id'" //登陸主庫
資料庫的主庫的授權
grant replication slave on *.* to [email protected]'localhost' identified by '123';
檢視資料庫的狀態
mysql> show master status;
要提取出file值和position值從庫使用。
匯出主庫的內容
mysqldump -uroot -p3307 -S /data/3307/mysql.sock -A >/root/3307.sql
從庫的配置 (3308和3309做為從庫)
匯入主庫的內容,主從庫的內容實現高度一致
mysql -uroot -p3308 -S /data/3308/mysql.sock </root/3307.sql
登陸從庫
mysql -S /data/3308/mysql.sock -e "show variables like 'server_id'"
從庫的設定
mysql> change master to
-> master_host='localhost',
-> master_port=3307,
-> master_user='slave',
-> master_password='123',
-> master_log_file='mysql-bin.000008', // 一定要和主庫的授權表資訊表示一致
-> master_log_pos=521; // 一定要和主庫的授權表資訊表示一致
狀態值檢視
mysql> start slave;
mysql> show slave status\G;
主從配置成功
匯入主庫的內容,主從庫的內容實現高度一致
mysql -uroot -p3309 -S /data/3309/mysql.sock </root/3307.sql
登陸從庫
mysql -S /data/3309/mysql.sock -e "show variables like 'server_id'"
從庫的設定
mysql> change master to
-> master_host='localhost',
-> master_port=3307,
-> master_user='slave',
-> master_password='123',
-> master_log_file='mysql-bin.000008', // 一定要和主庫的授權表資訊表示一致
-> master_log_pos=521; // 一定要和主庫的授權表資訊表示一致
狀態值檢視
mysql> start slave;
mysql> show slave status\G;