Code前端首页关于Code前端联系我们

Linux下mysql自动同步简介

terry 2年前 (2023-09-30) 阅读数 41 #Mysql
文章标签 Mysql

本文目录:

  • 1、如何在Linux上实现mysql数据库每日自动备份
  • 2、mysql如何实现两个数据库之间数据结构的实时同步?
  • 3、Linux下如何实现mysql每日自动备份
  • 4、Linux下设置mysql数据库数据配置主主同步示例

linux下如何实现mysql数据库每日自动备份

1。编写自动备份脚本autobackup.sh,内容如下

#!/bin/bash

mysqldump -p 数据库名mydata.sql

2。使其可执行 chmod +x autobackup.sh

3。只要让系统通过crontab自动运行这个脚本即可,例如 crontab -e

0 0 * * * /tee /autobackup.sh

第一个0代表分钟,第一个0代表分钟。两个零代表0小时,也就是零辰。第三个 * 代表每天,第四个 * 代表每月,第五个 * 代表每周。

mysql如何实现两个数据库之间数据结构的实时同步?

两个MySQL数据库同步的原理:

为了实现replic,MySQL必须开启bin-log项,这也就开启了MySQL二进制日志记录选项。 MySQL垃圾日志

二进制日志可以记录所有影响数据库表中存储的记录内容的SQL操作,例如插入/更新/删除操作,但不记录

select等操作。因此,我们可以通过二进制日志将一定时间内丢失的数据恢复到数据库中(如果二进制日志中存储的日志记录包含了数据库表中的所有数据,那么可以将所有数据恢复到本地数据库中) )。而这个二进制日志

在用于远程数据库恢复时就是replic。因此,使用replic模式来代替同步。因此,您必须指定 bin-log = 选项。

在同步过程中,最重要的同步参考是使用哪个二进制日志文件进行同步以及从哪条记录开始同步。下面介绍

如何实现两个MySQL数据库之间的主从同步。 ?本文档主要讲解如何在Linux系统上使用mysql配置配置两台机器双机热备。

2。环境

操作系统:Linux 2.6.23.1-42.fc8 # SMP(未安装 XEN)

Mysql 版本:5.0.45-4.fc8

设备环境:两台电脑(或虚拟机) 3.配置

数据库同步复制功能设置反映在MySQL配置文件中。 MySQL配置文件(通常是my.cnf):在此环境中

是/etc/my.cnf。

3.1 设置环境:

IP 设备:

主机 IP:10.10.0.119

掩码:255.255.0.0 IP:255.255.0.0.1.0.1.1.0

掩码:255.255.0.0 .1.0.1.1.0 .0.0

IP配置完成后,需要确保两台机器的防火墙确实关闭。您可以使用命令 service iptables status

查看防火墙状态。如果防火墙状态仍在运行。要禁用防火墙,请使用 iptables stop 服务。如果要启用或禁用防火墙,可以使用setup命令来禁用或自定义它。

最后,如果两台主机能够互相ping通就更好了。

3.2 配置父(上)B 从(下)模式

3.2.1 配置A为主

  1. 添加帐户以同步用户:

* GRANT FILE ON *。 '@'10.10.8.112' 确认 '1234';

GRANTREPLICATION SLAVE ON *.* TO 'backup'@'10.10.8.112' 确认 '1234';.1.1Grant;

从机 如果您有文件权限,仅仅给从机文件权限是不够的。您还必须授予它 REPLICATION SLAVE 权限

2。添加数据库作为同步数据库:

create databbse test;

3.创建表结构:

创建表mytest(用户名varchar(20),密码varchar(20));

4.编辑配置文件:

编辑A文件/etc/my.cnf,在配置项my.cnf中添加如下配置:

server-id = 1 #服务器标识

❀ binlog-do -db=test #设置数据库,需要日志

5。重启数据库服务:

service mysqld restart

查看服务器ID:

show variable like 'server_id';

示例:

mysql 显示类似“server_id”的变量;

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

|变量名 |值|

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

|服务器 ID | 1 |

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

1 行一组(0.00 秒)

6。使用 show master status/G 查看日志状态。

通常:

mysql show main state/G

************************************ *** 1.行 ** ******************************

文件:mysqld-bin.000002

位置:198

Binlog_Do_DB:测试,测试

Binlog_Ignore_DB:

集合中的 1 行(0.08 秒)

3.2.2 从站

1 的集合 B。添加数据库作为同步数据库:

create databbse test;

2,创建表结构:

create table mytest (username varchar(20),password varchar(20));3.编辑配置文件:

编辑B文件/etc/my.cnf、my.cnf在cnf配置项中添加如下配置:

server-id=2

master-host=10.10。 0.119

master-user=backup #同步用户账号

master-password=1234

master -port=3306

默认间隔s秒=60-t replic数据库=test #告诉slave只更新备份数据库

5.重启数据库服务:

service mysqld restart

查看服务器ID:

显示'server_id'等变量;

示例:

mysql 显示类似“server_id”的变量;

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

|变量名 |值|

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

|服务器 ID | 2 |

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

组中 1 行 ( 0.00秒)

6。使用show Slave Status /G命令查看日志状态

通常:

mysql 显示从属状态/G

******************************** 第 1 行** *************************

Slave_IO_State:等待主机发送事件

Master_Host:10.10.0.119

Master_User :备份

Master_Port:3306

Connect_Retry:60

Master_Log_File:mysqld-bin.000001

Read_Master_Log Relay_Master_Log 文件:mysqld -relay-bin.000003

Relay_Log_Pos:236

Relay_Master_Log_File: mysqld-bin.000001 bin.000001

Slave_IO_Running:是

Slave_SQL_Running:是

Replicate_Do_DB:测试,测试

ate_Do_Table :

Replicate_Do_Table:

Last_Error : 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos:98

Relay_log_space:236

Until_condition:无

Until_log_file:

L Until_Log_Position。 Master_ SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0.01秒(0.01 秒) 输入并更新配置 3.2。在主机A中进行相应的添加和删除更改数据库;检查主机B的数据库与主机A的数据库是否一致;一致则配置成功

3.3 两台电脑互备模式

如果在A主机上添加子设置,在B主机上添加主设置,就可以实现B-A同步。

1。在主机A的配置文件中的mysqld配置项中添加如下设置:

master-host=10.10.8.112

master-user=backup

master-password=1234 -Confuusate db=test

主连接重试=10

2。 B配置文件中mysqld配置项添加如下设置:

log-bin

binlog-do-db=test

注。发生错误时,*.err 日志文件的同步线程将关闭。修复错误后,运行 sub

start 来运行同步机制。

重启A、B机器,实现双向热备。

总之,成功完成上述配置后,在主服务器A测试库中添加数据或删除数据,马上就会在子服务器B测试库中看到相应的变化

。可以说两台服务器之间的同步操作立刻就完成了。

如何在Linux中实现mysql每日自动备份

首先创建一个备份文件夹:mkdir mysql_data_bak,然后创建一个脚本文件:点击autobackupmysql.sh。打开 vi autobackupmysql.sh,在脚本中添加以下内容: filename=`date +%Y%m%d`/usr/ bin/mysqldump -uroot -proot boss /home/mysql_data_bak/$filename.sql 查看 crond 是否为安装了。如果没有,先安装 yum -y install vixie-cronyum -y install crontabs 启动服务:CentOS系统中就会添加crond启动服务。开机自动运行:chkconfig --level 345 crond oncrontab -e 添加内容:00 03 * * * source /root/autobackupmysql.sh 每天凌晨 3 点运行此文件来备份数据库。重启服务crond还没有在Linux上部署mysql。自动备份每天完成。

Linux下mysql数据库数据配置设置主主同步示例

† 数据库同时写入

从服务器写入数据) 3 配置

数据库服务器(A)

主数据库

IP:192.168.1.134

数据库服务器 数据库服务器(B) IP:192.168.1.138

两台服务器同步 用户名:

bravedu

密码:

brave123

1. 数据库基本操作设置(A):❠ ❑C

允许连接

用户 IP 地址

(非本机 IP)

复制代码

代码如下:

grant

* . *

'bravedu'@'192.168.1.%'

识别并拥有权限;

编辑mysql配置文件

复制代码

代码如下:

[mysqld]

服务器ID

===

=1 /mysql/binlog /binlog

(根据自己的安装做)

binlog-do -db

=

dbname

(数据库名必须同步l †increment_offset=1

auto_increment_increment= 2

replic ate-do -db

=

dbname

replic ate-ignore-2♶我的information_schema

重新启动mysql 服务器

检查主数据库同步状态

IP:

***.134

代码复制代码下一个:♶。 mysqlflush

锁;

mysqlshow

master

状态\G

*************************** ***

1.

********************************

文件:

mysql- bin.000001

(请注意,设置从服务器时必须使用

位置:

106

(请注意,设置从服务器时必须使用) 博客 †

mysqlunlock

tables;

*** **主服务器设置为当前位置***********

2.从数据库工作设置( B):

创建同步用户名

复制代码

代码如下; 检测到

'brave123';

flush

权限;

⑶文件s⑶C

复制代码

代码是:[mysqld]

服务器 ID

=

2 glog-Bin =/www/mysql/binlog/binlog

根据安装路径(待同步的数据库名称)

binlog-ignore-db=

mysql,information_schema

# 主从同步不同位置♶♸

dbname

binlog-ignore-db=mysql

日志从属更新

sync_binlog=1

auto_increment_offset=2

auto_increment_increment=2 ronization状态

IP:

* ** .138

复制代码

代码如下:

mysqlflush

tables

行;

我的 qlshow

master

状态\G

******************************** **** ***

1.

线

************************************ *

文件:

mysql-bin .000005

(注意

在设置子服务器时使用)

位置:

106

106使用♶子服务器设置时Do_DB :

dbname

Binlog_Ignore_DB:

mysql

1

row

in

in

in

0.0.0。 sec)

mysqlunlock

tables;

设置主数据库服务器同步命令

注:IP是主服务器IP,用户名,密码,log_file,log_post

服务器连接到每个其他

必须先解锁

表,停止数据库状态,在启动状态下启动

复制代码

代码如下:

top 原;

#设置192.168.1.138数据库服务器配置

则主机

配置文件信息

s

s

s ‶‶ 134。 更改

master

master_host='192.168.1.134',

master_user='bravedu',

master_password='brave123', ='0.0.my's'。

master_log_pos=106;

#设置192.168.1.134

数据库服务器配置

则主机

等配置文件信息为♶♶4♶

。 mysq l

更改

master

master_host='192.168.1.138',

master_user='bravedu',master_ log_file='mysql-bin.000001' ',

master_log_pos=106;

mysql

启动

从属;

mysql

mysql表

查看主库同步状态

但是主要看这两个状态

如果都是

yes

那就是

复制代码如下:mysqlshow

slave

状态\G;

Slave_IO_Running:

Yes

Yes

Yes

1

至此主库同步配置成功完成。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门