MySQL多主一從同步

MySQL多主一從同步 mysql

實驗準備:主機A和主機B做爲主,其IP地址分別爲192.168.131.129192.168.131.130,主機C做爲從服務器,在從服務器上面配置MySQL多實例,其IP地址爲192.168.131.136,三臺服務器均關閉防火牆和SELINUXMySQL版本爲5.6.26,爲通用二進制包 linux

  1. 主機A和主機B主服務器MySQL通用二進制包安裝和初始化

    # tar xf mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz sql

    # mv mysql-5.6.26-linux-glibc2.5-x86_64 /usr/local/mysql 數據庫

    # useradd -M -s /sbin/nologin mysql vim

    # chown -R root:root /usr/local/mysql/* 安全

    # chown -R mysql:mysql /usr/local/mysql/data/ 服務器

    # yum -y install libaio socket

    # cd /usr/local/mysql/scripts/ 測試

    # ./mysql_install_db --datadir=/usr/local/mysql/data/ --user=mysql --basedir=/usr/local/mysql/ spa

    # cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

    # echo 'export PATH=$PATH:/usr/local/mysql/bin' >>/etc/profile

    # source /etc/profile

    # vim /etc/my.cnf

    [mysqld]

    datadir=/usr/local/mysql/data

    socket=/tmp/mysql.sock

    user=mysql

    symbolic-links=0

    [mysqld_safe]

    log-error=/var/log/mysqld.log

    pid-file=/var/run/mysqld/mysqld.pid

    # service mysqld start

    #chkconfig mysqld on

    # ss -tunlp | grep 3306

    # mysqladmin -uroot password '123456' #設置數據庫密碼

2、主機A和主機B配置

①主機A

# vim /etc/my.cnf

server-id=129

port=3306

log-bin=mysql-bin

log-bin-index=mysql-bin.index

max-binlog-size=100M

# service mysqld restart

# mysql -uroot –p

mysql> GRANT REPLICATION SLAVE ON *.* TO 'wdd'@'192.168.131.136' IDENTIFIED BY '123456';

mysql> SHOW MASTER STATUS;

②主機B

# vim /etc/my.cnf

server-id=130

port=3306

log-bin=mysql-bin

log-bin-index= mysql-bin.index

max-binlog-size=100M

# service mysqld restart

# mysql -u root –p

mysql> GRANT REPLICATION SLAVE ON *.* TO 'wdd'@'192.168.131.136' IDENTIFIED BY '123456';

mysql> SHOW MASTER STATUS;

3、主機c從服務器安裝MySQL多實例

# yum -y install libaio

# tar xf mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz

# mv mysql-5.6.26-linux-glibc2.5-x86_64 /usr/local/mysql

# useradd -M -s /sbin/nologin mysql

# mkdir /data/{3306,3307} –pv

# chown -R mysql:mysql /data/

#vim /etc/my.cnf

[mysqld_multi]

mysqld=/usr/local/mysql/bin/mysqld_safe

mysqladmin=/usr/local/mysql/bin/mysqladmin

#user=mysql

#password=123456

log=/data/multi.log

 

[mysqld129]

port=3306

pid-file=/data/3306/mysql.pid

datadir=/data/3306/data

socket=/data/3306/mysql.sock

server-id=136

user=mysql

 

[mysqld130]

port=3307

pid-file=/data/3307/mysql.pid

datadir=/data/3307/data

socket=/data/3307/mysql.sock

server-id=136

user=mysql

  1. # /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/3306/data --basedir=/usr/local/mysql/
  2. # /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/3307/data --basedir=/usr/local/mysql/
  3. # mysqld_multi --defaults-file=/etc/my.cnf start 129

    # mysqld_multi --defaults-file=/etc/my.cnf start 130

  4. # mysqld_multi --defaults-extra-file=/etc/my.cnf report
  5. # ss -tunlp | grep 330

注:爲了安全應該給MySQL實例設置密碼,命令以下

# mysqladmin -uroot -S /data/3306/mysql.sock password '123456'

# mysqladmin -uroot -S /data/3307/mysql.sock password '123456'

4.主機c多實例試驗操做

# mysql -uroot -S /data/3306/mysql.sock

mysql> CHANGE MASTER TO

MASTER_HOST='192.168.131.129',

MASTER_USER='wdd',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000004',

MASTER_LOG_POS=120;

mysql> START SLAVE;

mysql>SHOW SLAVE STATUS;

# mysql -u root -S /data/3307/mysql.sock

mysql> CHANGE MASTER TO

MASTER_HOST='192.168.131.130',

MASTER_USER='wdd',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000003',

MASTER_LOG_POS=331;

mysql> START SLAVE;

mysql>SHOW SLAVE STATUS;

5、測試

①登陸主機A

mysql> create database wdd;

mysql> SHOW DATABASES;

②登陸主機B

mysql> create database info;

mysql> show databases;

③查看MySQL實例,實例129130

實例129

# mysql -uroot -S /data/3306/mysql.sock

mysql> START SLAVE;

實例130

# mysql -u root -S /data/3307/mysql.sock

mysql> show databases;

注:MySQL多實例登陸時,其實不須要指定端口,也就是說能夠省略-p選項,即便使用-p選項,端口也能夠隨意指定,也就是說能夠隨便寫一個端口號,只要套接字不變,那麼登陸的仍是同一個MySQL實例。

相關文章
相關標籤/搜索