准备:
两台装上phpstudy集成环境的计算机(过程忽略)
固定两台电脑的ip(因为mysql数据库是通过ip进行连接,自动获取ip会导致下次重启电脑时,连接就会失效)
步骤1:找到网络连接信息
步骤2:创建文本文件,将连接信息记录下来
步骤3:将文本记录信息复制到ipv4属性里面
步骤4:查看详细信息,配置成功
扩展:
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,在RFC 2131中有详细的描述。
主从复制:
理解:
理解:
配置主数据库服务器
找到主数据库的配置文件my.cnf(或者my.ini),我的在/etc/mysql/my.cnf,在[mysqld]部分插入如下两行:
log-bin=mysql-bin #开启二进制日志
server-id=1 #设置server-id
在其中一台计算机上进入mysql命令界面
创建用于从服务器连接的用户账号并授权
CREATE USER 'user1'@'192.168.1.101' IDENTIFIED BY 'user1';#创建用户
GRANT REPLICATION SLAVE ON *.* TO 'user1'@'192.168.1.101';#分配权限
flush privileges; #刷新权限
查看master状态,记录二进制文件名和位置
SHOW master STATUS;
配置从数据库服务器
找到从数据库的配置文件my.cnf(或者my.ini),插入唯一服务id:
server-id=2 #设置server-id,必须与其他服务器不一样
.打开mysql会话,执行以下SQL语句
CHANGE MASTER TO
MASTER_HOST='192.168.1.101',#主数据库服务器ip
MASTER_USER='user1',#访问主数据库服务器的用户名
MASTER_PASSWORD='user1',#访问主数据库服务器的密码
MASTER_LOG_FILE='mysql-bin.000002',#主数据库服务器开启的二进制文件名
MASTER_LOG_POS=73;#主数据库服务器开启的二进制文件名的位置
启动slave同步master
start slave;
查看slave状态
show slave status\G;
主主复制
就是按照主从复制的步骤,将原来的从数据库服务器当做主数据库服务器配置,同理,原来的主数据库服务器当做从数据库服务器配置,这样就可以实现无论哪个服务器插入数据,其他主服务器都能实现数据同步
注意:在配置的时候我们需要注意一些问题,例如,主键重复,server-id不能重复等等。
关于主主的配置
server-id=11 #任意自然数n,只要保证两台MySQL主机不重复就可以了。
log-bin=mysql-bin #开启二进制日志
auto_increment_increment=2 #步进值auto_imcrement。一般有n台主MySQL就填n
auto_increment_offset=1 #起始值。一般填第n台主MySQL。例如此时为第一台主MySQL
binlog-ignore=mysql #忽略mysql库(可写可不写)
binlog-ignore=information_schema #忽略information_schema库(可写可不写)
replicate-do-db=aa #要同步的数据库,默认所有库
注意事项
主主复制配置文件中auto_increment_increment和auto_increment_offset只能保证主键不重复,却不能保证主键有序。
当配置完成Slave_IO_Running、Slave_SQL_Running不全为YES时,show slave status\G信息中有错误提示,可根据错误提示进行更正。
Slave_IO_Running、Slave_SQL_Running不全为YES时,大多数问题都是数据不统一导致。
常见出错点:
1、两台数据库都存在db数据库,而第一台MySQL db中有tab1,第二台MySQL db中没有tab1,那肯定不能成功。
2、已经获取了数据的二进制日志名和位置,又进行了数据操作,导致POS发生变更。在配置CHANGE MASTER时还是用到之前的POS。
3、stop slave后,数据变更,再start slave。出错。
终极更正法:重新执行一遍CHANGE MASTER就好了。
(责任编辑:IT) |