mysql主从库怎么搭建 mysql主从架构

MySql服务器怎么架设主从数据库服务器呢?

大致步骤如下:主MySQL服务器:192.168.3.1备MySQL服务器:192.168.3.2配置文件路径:/etc/my.cnfMySQL服务状态:停止-------------------------主服务器配置-------------------编辑配置文件:vi

为洮北等地区用户提供了全套网页设计制作服务,及洮北网站建设行业解决方案。主营业务为成都网站制作、成都做网站、洮北网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

/etc/my.cnf找到[mysqld]在它下面添加内容:server-id=1log-bin=backuplogbinlog-do-db=test#如果有多个数据库需要同步,添加多行即可#binlog-do-db=test2保存my.cnf配置文件。启动mysql:service

mysqld

start用root登录mysql,为同步数据创建新帐号:grant

file,select,replication

slave

on

*.*

to

'test'@'%'

identified

by

'123456';------------------------备服务器配置-------------------------编辑配置文件:vi

/etc/my.cnf在[mysqld]下加入:server-id=2master-host=192.168.3.1master-user=testmaster-password=123456master-port=3306#replicate-do-db=test

#此配置项为设置仅同步的数据库名,其它数据库忽略(建议不设置此选项)保存并启动mysql即可。如果需要查看同步状态,可分别在主从服务器上用如下命令查看:主服务器:show

master

status;从服务器:show

slave

status\G------------------值得说明的两个文件-----------------备份服务器上的/var/lib/mysql/目录下有两个:master.info和relay-log.info它们记录了主服务器的配置信息和同步信息,如果出现备份服务器不能同步数据的问题,可尝试将这两个文件删除,让备服务器重新同步。备注:进行操作之前先备份下数据比较保险一点。

centos 怎么搭建mysql主从库

在配置Mysql数据库主从复制集群的时候要保证:

1.主从服务器操作系统版本和位数一致。

2.Mysql版本一致。

为了保证稳定性,最好服务器操作系统和Mysql数据库环境一致。

CentOS服务器上Mysql的安装方法可以参见博客:

服务器配置:

Master:192.168.1.18

Slave:192.168.1.16

Master(192.168.1.18)服务器:

1.编辑/etc/my.cnf

[root@jhq0229 ~]# vim /etc/my.cnf

2.配置

[plain] view plain copy print?

[mysqld]

datadir=/data/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

#主从复制配置

innodb_flush_log_at_trx_commit=1

sync_binlog=1

#需要备份的数据库

binlog-do-db=orders

#不需要备份的数据库

binlog-ignore-db=mysql

#启动二进制文件

log-bin=mysql-bin

#服务器ID

server-id=1

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]

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

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

若没有配置binlog-do-db和binlog_ignore_db,表示备份全部数据库。

3.重启Mysqld服务

[root@jhq0229 ~]# service mysqld restart

4.为从Mysql创建用户

登录

[root@jhq0229 ~]# mysql -uroot -p

Enter password:

创建用户

mysql create user 'mastj'@'192.168.1.16' identified by '123456';

配置主从复制权限

mysql grant replication slave on *.* to 'mastj'@'192.168.1.16' identified by '123456';

若orders数据库中已经有数据,还需要:

锁定数据库

mysql flush tables with read lock;

将数据导入到从数据库,方法有多种,我是用Navicat复制的,复制完成后:

查看master状态并解锁:

[html] view plain copy print?

mysql show master status;

+------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000003 | 2005 | orders | mysql | |

+------------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

mysql unlock tables;

Slave(192.168.1.16)服务器:

1.配置服务ID

[root@jhq0113 ~]# vim /etc/my.cnf

在[mysqld]下面加入

server-id=2

重启Mysql服务

[root@jhq0113 ~]# service mysqld restart

2.配置复制

登录mysql

[root@jhq0113 ~]# mysql -uroot -p

执行

mysql change master to master_host='192.168.1.18',

master_user='mastj',

master_password='123456',

master_port=3306,

master_log_file='mysql-bin.000003',

master_log_pos=2005,

master_connect_retry=10;

参数详解:

master_host:主服务器的IP。

master_user:配置主服务器时建立的用户名

master_password:用户密码

master_port:主服务器mysql端口,如果未曾修改,默认即可。

master_log_file:日志文件名称,填写查看master状态时显示的File

master_log_pos:日志位置,填写查看master状态时显示的Position

master_connect_retry:重连次数

启动进程

mysql start slave;

检查主从复制状态

[plain] view plain copy print?

mysql show slave status\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.1.18

Master_User: mastj

Master_Port: 3306

Connect_Retry: 10

Master_Log_File: mysql-bin.000003

Read_Master_Log_Pos: 2369

Relay_Log_File: jhq0113-relay-bin.000002

Relay_Log_Pos: 647

Relay_Master_Log_File: mysql-bin.000003

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

若Slave_IO_Running和Slave_SQL_Running均为Yes,则表示连接正常。

此时就可以测试主从复制了。

如何在一台windows主机上搭建mysql主从配置

先在主数据库中创建新数据库rep_test。

然后编辑主数据库的my.ini文件

在[mysqld]节点中增加如下内容:

server-id=1

#指定唯一的ID,1至32,必须的

log-bin=mysql-log-bin

#指定二进制日志存放路径,必须的

binlog-do-db=rep_test

#指定要同步的数据库,必须的

#binlog-ignore-db=mysql

#指定不要同步的数据库,如果指定了binlog-do-db就不用再指定该项

重启主数据库,然后在主数据库中建立一个备份账户

mysqlgrant

replication

slave

on

*.*

to slave@192.168.1.128

identified

by

'slave'

;

mysqlflush

privileges;

PS:identified

by

指定的slave是账号slave@192.168.1.128

的密码

显示主服务器的状态信息,并且找到File

Position

的值记录下来;

mysqlshow

master

status;

在从数据库中创建新的数据库rep_test。

然后编辑从数据库的my.ini文件

在[mysqld]节点中增加如下内容:

server-id=2

#指定唯一的ID,2至32,必须的,并且不能跟主数据库一样

replicate-do-db=rep_test

#指定要同步的数据库,必须的

#replicate-ignore-db=mysql

#指定不要同步的数据库,

重启从数据库,设置登录主数据库的账号和密码等信息,然后启动slave

mysqlchange

master

to

master_host='192.168.1.2',master_user='slave',master_password='slave',

master_log_file='mysql-bin.000002',master_log_pos=120;

mysqlstart

slave;

查看从数据库的信息

mysqlshow

slave

status

\G;

如果出现: Slave_IO_Running:

YesSlave_SQL_Running:

Yes以上两项都为Yes,那说明没问题了

测试主从复制是否有效果

在主数据库中创建一个新的数据库,然后再切换到从数据库查看是否同样多出通名的数据库

配置旧数据库的主从复制

如果一开始数据库的架构不是主从复制,并且运行一段时间后已经有数据存在,那配置的方式略有不同。

编辑主数据库的my.ini文件,加上一下内容:

binlog-do-db=landclash

重启主数据库,然后在主数据库中锁定所有的表

mysqlflush

tables

with

read

lock;

显示主服务器的状态信息,并且找到File

Position

的值记录下来;

mysqlshow

master

status;

将主数据库data目录下需要做主从复制的数据库的同名目录拷贝到从数据库的data目录下

编辑从数据库的my.ini文件,加上一下内容:

replicate-do-db=landclash

重启从数据库,因为主数据库在重新配置my.ini后,日志文件变成新的文件,所以需要再次设置登录主数据库的账号和密码等信息

mysqlstop

slave;

mysqlchange

master

to

master_host='192.168.1.2',master_user='slave',master_password='slave',

master_log_file='mysql-bin.000003',master_log_pos=120;

mysqlstart

slave;

再次输入查看从数据库状态的命令

mysqlshow

slave

status

\G;

完成上述配置后,回到主数据库,将表解锁

mysqlunlock

tables;

之后在主数据库的修改就能同步到从数据库上了。


当前名称:mysql主从库怎么搭建 mysql主从架构
当前URL:http://azwzsj.com/article/hpjsjs.html