数据库主从设计

来源:互联网 发布:ib网络配置 编辑:程序博客网 时间:2024/06/03 10:58

主从配置我们需要有两台mysql服务器:

1mysql配置文件my.cnf的位置

2、如何启动、停止mysql,找好启动文件

假设有两台机器,已经安装好了mysql(尽量同版本,且两台机器同一网络,可以ping通)

有朋友说:从服务器,不能低于主服务器的版本,不过我是低于的,没有出现问题。

主机A: 172.16.15.221

从机B:172.16.15.196

可以有多台从机


环境linux系统

主服务器使用innodb,从服务器使用myisam

主服配置文件

server-id= 1
log-bin = mysql-bin
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-do-db = master_slave

 

线上环境安装

[mysqld]

default-storage-engine =InnoDB

character_set_server=utf8

log-bin=mysql-bin

log-bin-index=master-bin.index

server-id=48

 

binlog_do_db=hscloud

binlog_do_db=pyhscloud

binlog_do_db=openstack

binlog_do_db=mysql


//
重启主服
service mysqld restart
//
查看主服状态,并记下bin log pos,主服的所有操作均记录在Binlog
show master status;
从服配置文件
server_id = 2
log_bin = mysql-bin
relay_log = mysql-relay-bin
log_slave_updates = 1
read_only = 1
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
replicate-do-db = master_slave
//
重启从服
service mysqld restart
//
设定主服并启动同步
mysql> change master to master_host='172.16.15.221', master_user='root',master_pass
word='111111',master_log_file='mysql-bin.000001', master_log_pos=106;
mysql> start slave;
mysql> show slave status;

 

 

环境:
主服务器地址:192.168.239.2windows 7
从服务器地址:192.168.239.129windows 7

主从服务器的版本都是5.5.41-MariaDB(主从服务器的版本可以不一样,但是从服务器必须高于主服务器)

演习目标,让主服务器的test数据库在从服务器上生成一个镜像

1主从服务器都已经正常安装MySQL,关闭主从服务器的MySQL服务
2
拷贝主服务器的test数据库的数据目录到从服务器的相应目录
3
修改主服务器的MySQL的配置,增加以下配置:

server-id=1
log-bin=D:/APMXE5/mysql50/logs/master
binlog-do-db=test
#
只镜像test这个数据库

4启动主服务器的MySQL,执行showmaster status;
应该能看到类似这样的两个值:

filemaster.000001
position
128
记下来

5在主服务器的MySQL创建一个新用户replicuser(你可以随便起,只要和下面的配置对应的上),从服务器就通过这个用户登录主服务器读取二进制日志

6修改从服务器的MySQL配置,增加以下配置:

server-id=2
master-host=192.168.239.2
master-user=replicuser
master-password=123456

7重新启动从服务器的MySQL,登录后执行以下命令:

changemaster to master_host='192.168.239.2';
change master to master_user='replicuser';
change master to master_password='123456';
change master to master_log_file='master.000001';
change master to master_log_pos=128;

startslave

8测试成功ok

 

参数说明:

1.server-id = 1 #服务器标志号,注意在配置文件中不能出现多个这样的标识,如果出现多个的话mysql以第一个为准,一组主从中此标识号不能重复。

2.log-bin=/home/mysql/logs/binlog/bin-log #开启bin-log,并指定文件目录和文件名前缀。

3.max_binlog_size = 500M #每个bin-log最大大小,当此大小等于500M时会自动生成一个新的日志文件。一条记录不会写在2个日志文件中,所以有时日志文件会超过此大小。

4.binlog_cache_size = 128K #日志缓存大小

5.binlog-do-db = adb #需要同步的数据库名字,如果是多个,就以此格式在写一行即可。

6.binlog-ignore-db = mysql  #不需要同步的数据库名字,如果是多个,就以此格式在写一行即可。

7.log-slave-updates  #当Slave从Master数据库读取日志时更新新写入日志中,如果只启动log-bin 而没有启动log-slave-updates则Slave只记录针对自己数据库操作的更新。

8.expire_logs_day=2 #设置bin-log日志文件保存的天数,此参数mysql5.0以下版本不支持。

9.binlog_format="MIXED"  #设置bin-log日志文件格式为:MIXED,可以防止主键重复

10.Binlog_Do_DB:设定哪些数据库需要记录Binlog

Binlog_Ignore_DB:设定哪里数据库不需要记录Binlog

11.Replicate_Do_DB:设定需要复制的数据库,多个DB用逗号分隔

Replicate_Ignore_DB:设定可以忽略的数据库.

Replicate_Do_Table:设定需要复制的Table

Replicate_Ignore_Table:设定可以忽略的Table

Replicate_Wild_Do_Table:功能同Replicate_Do_Table,但可以带通配符来进行设置。

Replicate_Wild_Ignore_Table:功能同Replicate_Do_Table,功能同Replicate_Ignore_Table,可以带通配符

 

0 0
原创粉丝点击