mysql主库怎么挂 mysql 挂载数据库

mysql主库 备份库怎么同步

在两台服务器上安装mysql

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

#apt-get install mysql-server -y

创建同步帐户

我这里就直接使用的数据库默认用户root

在ubuntu4上:

mysql grant replication slave on *.* to 'root'@'192.168.2.5' identified by '12345678';

mysql flush privileges;

在ubuntu5上:

mysql grant replication slave on *.* to 'root'@'192.168.2.4' identified by '12345678';

mysql flush privileges;

修改mysql的配置文件

/etc/mysql/my.cnf

在Ubuntu4 上:

【code】

[mysqld]

binlog-do-db=db_rocky #需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项

binlog-ignore-db=mysql #不需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项

replicate-do-db=db_rocky #需要进行同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个replicate-do-db选项

replicate-ignore-db=mysql,information_schema #不需要同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个replicate-ignore-db选项

#同步参数:

server-id=1

log_bin = /var/log/mysql/mysql-bin

#保证slave挂在任何一台master上都会接收到另一个master的写入信息

log-slave-updates

sync_binlog=1

auto_increment_offset=1

auto_increment_increment=2

slave-skip-errors=all #过滤掉一些没啥大问题的错误

【/code】

在Ubuntu5上:

[mysqld]

server-id=2 #设置一个不同的id、注意这里在my.cnf里面有个默认值是 1 、把默认值改掉、而不能新增一个server-id

binlog-do-db=db_rocky #需要记录二进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项

binlog-ignore-db=mysql #不需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-ignore-db选项

#需要同步的数据库

replicate-do-db=db_rocky

#需要进行同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项

replicate-ignore-db=mysql,information_schema #不需要同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项

#同步参数:

#保证slave挂在任何一台master上都会接收到另一个master的写入信息

log-slave-updates

sync_binlog=1

auto_increment_offset=2

auto_increment_increment=2

slave-skip-errors=all #过滤掉一些没啥大问题的错误

分别重启服务器上的mysql服务

分别在服务器上查看做为主服务器状态

mysql flush tables with read lock;#防止进入新的数据

mysql show master status\G;

分别在服务器上用change master语句指定同步位置 :

在ubuntu4上:

change master to master_host='192.168.2.5',master_user='root',master_password='12345678',master_log_file='mysql-bin.000001',master_log_pos=107;

在Ubuntu5上:

change master to master_host='192.168.2.4',master_user='root',master_password='12345678',master_log_file='mysql-bin.000001',master_log_pos=107;

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,则表示连接正常。

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

mysql主库挂了 怎么让应用连从裤

1、挑选一台服务器作为新主库

可以是现有的slave,也可以是新扩容出来的slave,但是归根结底它的角色是slave

2、在new master上设置log-slave-update,用来记录中继的binlog。

3、交替使用slave start until 和 change master to命令,将现有结构从A-B 切换成A-B-C结构,即级联结构。

其中A=old master,B=new master,C=slaves

4、设定new master的read_only=OFF,保证新主库可写

5、建立old master和new master的双主结构,保证切换失败之后可以回退,并且数据一致。

需要注意的时auto_increment,如果有字段有这个属性,需要在old 和 new master上分别设置如下来规避自增冲突。


当前文章:mysql主库怎么挂 mysql 挂载数据库
URL链接:http://cdiso.cn/article/doooohg.html

其他资讯