您好,欢迎访问一九零五行业门户网

Mysql之双向主从加keepalived高可用

最近在做mysql数据库的双向主从,了解到keepalived能够自动判断并切换到可用数据库,自己试了一下,整理出文档来。..
        最近在做mysql数据库的双向主从,了解到keepalived能够自动判断并切换到可用数据库,自己试了一下,整理出文档来。
        先声明一下环境
iptables开启3306端口或者关掉,关闭selinux
mysql-01:192.168.204.138
mysql-02:192.168.204.139
vip:192.168.204.200             #web服务器连接的ip,自己可以使用工具连接试一下。
        mysql的安装过程就略过了,根据个人情况自己安装即可。
1.修改数据库的配置文件/etc/my.cnf:
        1.1修改mysql-01的数据库文件,在[mysql]下添加如下内容
server_id = 1log_bin = mysql-bin   1.2修改mysql-02的数据库文件,在[mysql]下添加如下内容
server_id = 2log_bin = mysql-bin2.搭建单向主从
        2.1在mysql-01上
        2.1.1操作授权 
mysql -u root -p            #输入密码mysql> grant replication slave on *.* to 'slave'@'192.168.204.139' identified by '123456';mysql> flush privileges;   2.1.2数据传递给mysql-02
mysql -u root -p            #输入密码flush tables with read lock;        #锁表操作mysql> show master status;+------------------+----------+--------------+------------------+-------------------+| file             | position | binlog_do_db | binlog_ignore_db | executed_gtid_set |+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000012 |      120 |              |                  |                   |+------------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)mysqldump -u root -p --all-databases > mysqldump.sqlmysql -u root -pmysql> unlock tables;mysql> quit    scp myqsldump.sql 192.168.204.139:/root/   2.2在mysql-02上操作
2.2.1恢复数据库数据      
mysql -u root -p    2.2.2建立主从同步        mysql -u root -pmysql> change master to master_host='192.168.204.138',master_user='slave',master_password='123456',master_log_file='mysql-bin.000012',master_log_pos=120,master_port=3306;start slave;   检查是否成功      
show slave status\g;slave_io_running: yesslave_sql_running: yes          都为yes表示同步成功。
注:master_port=3306,默认时不需要加,但是修改过端口的则需要该选项
3.搭建互为主从
3.1在mysql-01上操作
3.1.1用户授权      
mysql -u root -p123456mysql> grant replication slave on *.* to 'slave'@'192.168.204.138' identified by '123456'; //建立权限mysql> flush privileges;   注:因为做的是所有库的主从,,所以在mysql-01上的操作会同步到mysql-02上
3.2在mysql-02上的操作
mysql -u root -pmysql> show master status\g;+------------------+----------+--------------+------------------+-------------------+| file             | position | binlog_do_db | binlog_ignore_db | executed_gtid_set |+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000009 |      120 |              |                  |                   |+------------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)
其它类似信息

推荐信息