优点:
方便做数据热备份。作为后备数据库,主数据库服务器故障后,可切换从数据库继续工作,避免数据丢失。
思路
先在虚拟机上安装两个MySQL数据库
步骤同之前数据库多实例,且端口一个为3306,一个为3307
我们对两个数据库进行配置
我以3306端口的数据库为主库,3307端口的数据库为备库
配置主库:
在my06.cnf原来的基础上修改
目的是为主库配置二进制日志
[root@localhost ~]# vim my06.cnf
[client]
port = 3306 //port 端口号
socket = /tmp/mysql06.sock //socket套接字
[mysql]
no-auto-rehash //开启命令自动补全功能
[mysqld]
user = mysql //user可以启动的用户
basedir = /usr/local/mysql06 //basedir根目录
datadir = /data/mysql06 //datadir数据文件存放的目录
port = 3306
socket = /tmp/mysql06/mysql.sock
log-error = /data/mysql06/mysql.err //log-error异常信息存放的位置
pid-file = /data/mysql06/mysql.pid //pid-file 数据库进程存放的位
slow_query_log_file = /data/mysql06/slow.log //slow_query_log_file日志存放的位置
character-set-server = utf8
open_files_limit = 65535
max_connections = 100
max_connect_errors = 100000
lower_case_table_names =1
添加内容:
server-id = 1 //服务的唯一编号
log-bin = mysql-bin //开启mysql binlog功能
binlog_format = ROW //binlog记录内容的方式,记录被操作的每一行
binlog_row_image = minimal //减少记录日志的内容,只记录受影响的列
binlog-do-db = yyqx //指定需要复制的数据库名为yyqx
配置好后重启数据库
[root@localhost ~]# service mysqld restart
在MySQL数据库中 执行
创建从库同步数据的账号
mysql>grant replication slave on *.* to 'yyqx'@'192.168.112.109' identified by 'yyqx@123';
重新加载权限表,更新权限
mysql>flush privileges;
查看数据库状态
mysql>show master status\G
配置从数据库
[root@localhost ~]# vim my07.cnf
[client]
port = 3307 //port 端口号
socket = /tmp/mysql07/mysql.sock //socket套接字
[mysql]
no-auto-rehash //开启命令自动补全功能
[mysqld]
user = mysql //user可以启动的用户
basedir = /usr/local/mysql07 //basedir根目录
datadir = /data/mysql07 //datadir数据文件存放的目录
port = 3307
socket = /tmp/mysql07/mysql.sock
log-error = /data/mysql07/mysql.err //log-error异常信息存放的位置
pid-file = /data/mysql07/mysql.pid //pid-file 数据库进程存放的位
slow_query_log_file = /data/mysql07/slow.log //slow_query_log_file日志存放的位置
character-set-server = utf8
open_files_limit = 65535
max_connections = 100
max_connect_errors = 100000
lower_case_table_names =1
备库新增配置
server-id = 2
log-bin = mysql-bin
binlog_format = ROW
binlog_row_image = minimal
replicate-do-db = yyqx //指定需要复制的数据库名为yyqx.
配置好后重启数据库
[root@localhost ~]# service mysqld restart
在mysql数据库执行
设置主服务器ip,同步账号密码,同步位置
mysql>change master to master_host='192.168.112.110',master_user='mysql',master_password='000000',master_log_file='mysql-bin.000002',master_log_pos=2380;
开启同步功能
mysql>start slave;
查看数据库状态
mysql>show master status\G