首页数据库数据库主从配置,如何配置两个MySQL数据库之间的主从同步功能

数据库主从配置,如何配置两个MySQL数据库之间的主从同步功能

编程之家2023-10-20119次浏览

大家好,今天给各位分享数据库主从配置的一些知识,其中也会对如何配置两个MySQL数据库之间的主从同步功能进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

数据库主从配置,如何配置两个MySQL数据库之间的主从同步功能

如何配置两个MySQL数据库之间的主从同步功能

IP的设置:A主机 IP:10.10.0.119;Mask:255.255.0.0;B主机 IP:10.10.8.112;Mask:255.255.0.0

在IP设置完成以后,需要确定两主机的防火墙确实已经关闭。可以使用命令service iptables status查看防火墙状态。如果防火墙状态。

为仍在运行。使用service iptables stop来停用防火墙。如果想启动关闭防火墙,可以使用setup命令来禁用或定制。最终以两台主机可以相互ping通为佳。

3.2配置A主(master) B从(slave)模式;3.2.1配置A为master。

增加一个用户同步使用的帐号:

GRANT FILE ON*.* TO‘backup’@'10.10.8.112' IDENTIFIED BY‘1234’;

数据库主从配置,如何配置两个MySQL数据库之间的主从同步功能

GRANTREPLICATION SLAVE ON*.* TO‘backup’@'10.10.8.112' IDENTIFIED BY‘1234’。

赋予10.10.8.112也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。

增加一个数据库作为同步数据库:create database test;

创建一个表结构:create table mytest(username varchar(20),password varchar(20));

修改配置文件:修改A的/etc/my.cnf文件。

MySQL数据库的主从配置

需要两台主机,分别担任主服务器和从服务器

数据库主从配置,如何配置两个MySQL数据库之间的主从同步功能

主服务器IP:192.168.1.1

从服务器IP:192.168.1.2

首先分别在两台服务上配置mysql服务,见

在主服务器上:

# vim/etc/my.cnf

修改或添加如下条目

log-bin=master-bin

log-bin-index=master-bin.index

server-id=11

注:server-id一项可自行设置,但尽量不要设为1,也不能和从服务器重复

重启服务

# service mysqld restart

添加REPLICATION(复制)帐号:repl

# mysql

GRANT REPLICATION SLAVE,

REPLICATION CLIENT ON*.*

TO repl@'192.168.1.%'

IDENTIFIED BY'redhat';

注:*.*表示任意数据库中的任意表,‘192.168.1.%’表示只允许192.168.1.0网段的主高访问数据库

FLUSH PRIVILEGES;

\q

在从服务器端:

# vim/etc/my.cnf

修改或添加如下条目:

relay-log=relay-log-bin

relay-log-index=slave-relay-bin.index

server-id=22

注:server-id不能与主服务器的相同

重启mysql服务

# service mysqld restart

# mysql

CHANGE MASTER TO

MASTER_HOST='192.168.1.1',##主服务器的IP

MASTER_PORT=3306,##3306不能加引号,此行可有可无

MASTER_USER='repl',

MASTER_PASSWORD='redaht';

START SLAVE;

到此,主从mysql服务器配置完成!

测试:

在主服务器上对数据库进行修改,如:

# mysql

CREAT DATABASE mydb;

在从服务器端查看:

# mysql

SHOW DATABASES;

这里也将出现一个名为mydb的一模一样的数据库!

mysql 主从如何设置同步

mysql主从同步设置

同步介绍 mysql的主从同步是一个异步的复制过程,从一个 Master复制到另一个 Slave上。在 Master与 Slave之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave端,另外一个线程(IO线程)在 Master端。要实现 MySQL的主从同步,首先必须打开 Master端的BinaryLog(mysql-bin)功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。打开 MySQL的 Binary Log可以通过在启动 MySQL Server的过程中使用“—log-bin”参数选项,或者在 my.cnf配置文件中的 mysqld参数组([mysqld]标识后的参数部分)增加“log-bin”参数项。

Mysql主从服务器配置主服务器IP:192.168.1.60从服务IP:192.168.1.61 Linux:centOS Mysql版本:5.1.58以下配置皆在此服务上进行配置

查看主库服务器的my.cnf配置文件,根据mysql安装包、版本不同,相关的路径和配置文件路径会大致不一样,不过大多情况下是一样的。该文件在 etc/目录下。Mysql服务也提供了对不同服务器配置使用不同的配置文件,要使用它们的时候,只需用它们任一一个替换上面的my.cnf文件即可。注:替换文件名必须为my.cnf。 cnf配置文件一般会有四个,可以根据命令# ll/usr/share/mysql/*.cnf查看; my-small.cnf内存少于或等于64M,只提供很少的的数据库服务; my-medium.cnf内存在32M--64M之间而且和其他服务一起使用,例如web; my-large.cnf内存有512M主要提供数据库服务; my-huge.cnf内存有1G到2G,主要提供数据库服务; my-innodb-heavy-4G.cnf内存有4G,主要提供较大负载数据库服务(一般服务器都使用这个);可以根据服务器配置的不同选择不同的cnf配置文件。

配置my.cnf文件采用系统默认的etc/my.cnf配置文件进行配置,对主服务器进行配置主要需要在配置文件中添加以下几项(在添加的时候要确保它们不在文件中存在,因为如选择上面几种不同的配置文件,配置里的内容会不一样,如果没有相应的项,需要添加)。用vi etc/my.cnf打开文件,对文件进行修改,在[mysqld]下面进行添加修改: Server-id= 1#这是数据库ID,此ID是唯一的,主库默认为1,其他从库以此ID进行递增,ID值不能重复,否则会同步出错; log-bin= mysql-bin二进制日志文件,此项为必填项,否则不能同步数据; binlog-do-db= testcreate#需要同步的数据库,如果需要同步多个数据库;则继续添加此项。 binlog-do-db= testcreate1 binlog-do-db= testcreate2 binlog-ignore-db= mysql不需要同步的数据库;至此主服务器配置my.cnf配置完成,保存退出文件。现在对Mysql服务器进行重启:#servicemysqld restart如果重启失败,则证明配置文件错误,需重新检查。建议:对my.cnf修改之前最好对其进行备份,以免配置文件修改失败不能及时重启服务器。

配置完成后需要建立同步用的数据库账户主库需要提供一个账户让从库对起连接并同步,用命令mysql服务器 mysqlgrantreplication slave on*.* to‘testcreate’@’192.168.1.61’ identified by‘123456’;说明:’testcreate’:同步的数据库;‘192.168.1.61’:同步的数据库地址;‘123456’:同步的数据库密码,在从库配置时需要设置。

显示主库信息 mysqlshowmaster status;执行上述命令显示:看到上述信息则表示主库建立成功。

备份数据库(如果从服务器也为新建库,则不需要此操作)备份数据库的方法有很多种:如果在同一局域网可以直接复制数据库,也可以用工具直接进行数据导入。复制数据库用打包的方法:# cd/data转到存放Mysql数据库的路径下# tarcvfz testcreate.tar.gz db/再从数据库中进行复制解压# cd/data# scp192.168.1.61:/data/testcreate.tar.gz#tarxvfz testcreate.tar.gz数据复制完毕;

从库配置从服务器的配置基本与主库配置差不多,选择的从库服务器为:192.168.1.61 1.配置从库服务my.cnf文件# vietc/my.cnf对其进行如下修改: Server-id= 2#这里ID改为2因为主库为1; log-bin= mysql-bin必填项,用于数据同步; master-host= 192.168.1.60主库IP; master-user= test同步用的账户; master-password= 123456同步账户密码,主库时的设置; master-port= 3306同步数据库的端口号。

重启从库服务器#service mysqld restart如果重启失败则配置文件有问题,需重新检查配置。

调整复制过来的数据库的权限(如果有从主库复制过来的数据库)主库复制过来的数据库权限都为root权限,需要修改为mysql权限#chown–R mysql:mysql/var/lib/mysql如果从库是新建的库就不需要进行此步骤

显示从服务器状态进行mysql服务器: mysqlshowslave status\G;显示如图:

如果slave_io_running和slave_sql_running都为yes则表示从服务器配置成功。如果遇到关于position相关的错误,就需要再手动设置以下File/Postion的信息 mysqlChangemaster to master_host=‘192.168.1.60’ master_user=‘test’ master_password=’123456’ master_log_file=’mysql-bin.000001’,主库的文件信息 master_log_pos=’106’;主库的Position信息

数据库主从配置和如何配置两个MySQL数据库之间的主从同步功能的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!

腾讯云免费域名,腾讯云申请的域名怎么用dota2一直协调服务器(运行dota2时出现正在协调服务器怎么办)