Centos7+Keepalived实现Mariadb(MYSQL)的高可用(HA)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

我们前面几篇文章中有介绍了Keepalived的功能--HA,关于MySQL-HA,目前有多种解决方案,比如heartbeat、drbd、mmm、共享存储,但是它们各有优缺点。heartbeat、drbd配置较为复杂,需要自己写脚本才能实现MySQL自动切换,对于不会脚本语言的人来说,这无疑是一种脑裂问题;对于mmm,生产环境中很少有人用,且mmm 管理端需要单独运行一台服务器上,要是想实现高可用,就得对mmm管理端做HA,这样无疑又增加了硬件开支;对于共享存储,个人觉得MySQL数据还是放在本地较为安全,存储设备毕竟存在单点隐患。使用MySQL双master+keepalived是一种非常好的解决方案,今天我们介绍利用keepalived构建高可用MySQL-HA,保证两台MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换。

大概的思路是将两台MYSQL服务器配置双向复制,然后通过配置Keepalived指定realserver指向本地的Mysql服务器,实现高可用的切换。具体见下:

 

 

Image(95)

Hostname:DB01

IP:192.168.5.53

Role:Mariadb+Keepalived

Hostname:DB012

IP:192.168.5.54

Role:Mariadb+Keepalived

Virtual IP:192.168.5.88

从Centos7下mysql已经被遗弃了,变为Mariadb了,当然功能及配置是一样的。因为我们是Centos7,所以需要指定安装源,为后面yum安装服务提供支持需要执行以下命令:

1
2
3
4
5
cd  /etc/yum .repo
vim epel.repo
添加以下内容
[epel]   name=aliyun epel    baseurl=http: //mirrors .aliyun.com /epel/7Server/x86_64/
gpgcheck=0

Image(28)

我们查看定义的源

Image(96)

运行yum install MariaDB-server MariaDB-client命令安装 MariaDB

1
yum  install  mariadb-server mariadb-client mysql

Image(97)

安装完成后, 我们通过rpm查看安装的相关信息

1
rpm -qa |  grep  mariadb

Image(98)

然后启动数据库

1
2
systemctl start mariadb
systemctl  enable  mariadb

Image(99)

接着运行 mysql_secure_installation配置MariaDB

1
mysql_secure_installation

Image(100)

Image(101)

配置完成后,我们进入数据库

1
2
mysql –uroot –p
show databases;

Image(102)

接下来我们创建一个数据库及表单信息

1
2
create databases DB1;
show databases;

Image(91)

1
2
use DB1;
show tables;

Image(92)

1
2
3
创建一个表
CREATE TABLE info( id  int(30)NOT NULL,name varchar(30) NOT NULL,sex varchar(30) NOT NULL,mail VARCHAR(255) NOT NULL,PRIMARY KEY( id ));
insert into info (name,sex,mail) values( 'ls' , 'boy' , 'ls@abc.com' );

Image(93)

1
show tables;

Image(94)

我们可以根据自己的配置设置运行那些主机及用户进行mysql的连接;

如果我们需要配置任何主机都可以连接的话,可以使用一下命令

1
2
3
4
5
GRANT ALL PRIVILEGES ON *.* TO  'root' @ '%'  IDENTIFIED BY  '123456'  WITH GRANT OPTION;
flush privileges;
如果任何主机连接不需要密码的话可以下面
GRANT ALL PRIVILEGES ON *.* TO  'root' @ '%'  IDENTIFIED BY  ''  WITH GRANT OPTION;
flush privileges;

Image(103)

接下来我们修改默认的mysql配置文件

1
2
3
4
5
6
7
8
vim  /etc/my .cnf
server- id  = 1                     #backup这台设置2
log-bin = mysql-bin
binlog- do -db=DB   #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-ignore-db = mysql,information_schema        #忽略写入binlog日志的库
auto-increment-increment = 2              #字段变化增量值
auto-increment-offset = 1               #初始字段ID为1
slave-skip-errors = all                        #忽略所有复制产生的错误

Image(104)

保存退出;先查看下log bin日志和pos值位置

注意:这里记住File的值:mysql-bin.000001和Position的值:245,后面会用到。

1
show master status;

Image(105)

1
2
3
4
change master to master_host= '主服务器' ,master_user= 'mysql用户名' ,master_password= 'mysql服务密码' ,master_log_file= 'File值'  ,master_log_pos=Postion值;
我们需要些对方的服务器IP地址192.168.5.54
change master to master_host= '192.168.5.54' ,master_user= 'root' ,master_password= '123456' ,master_log_file= 'mysql-bin.000001'  ,master_log_pos=245;
里面填写的信息是是在主服务器上执行show master status;的信息

Image(106)

添加防火墙端口

1
firewall-cmd --add-port= '3306/tcp'  --permanent

Image(107)

1
2
启动slave
slave start;

Image(108)

主主同步配置完毕,查看同步状态Slave_IO和Slave_SQL是YES说明主主同步成功。

1
show slave status\G;

Image(109)

我们也需要同时在第二台服务器上执行上面的所有操作。

我们在第二台服务器上也安装完成

Image(110)

我们同样查看版本

1
rpm -qa |  grep  mariadb

Image(111)

然后启动数据库

1
2
systemctl start mariadb
systemctl  enable  mariadb

Image(112)

1
2
接着运行 mysql_secure_installation配置MariaDB
mysql_secure_installation

Image(113)

Image(114)

接下来我们同样登陆到mysql服务

1
2
mysql -uroot -p123456
show databases;

Image(115)

1
2
create databases DB1;
show databases;

Image(91)[1]

1
2
use DB;
show tables;

Image(92)[1]

创建一个表及插入数据

1
2
CREATE TABLE info( id  int(30)NOT NULL,name varchar(30) NOT NULL,sex varchar(30) NOT NULL,mail VARCHAR(255) NOT NULL,PRIMARY KEY( id ));
insert into info (name,sex,mail) values( 'ls' , 'boy' , 'ls@abc.com' );

Image(93)[1]

1
2
show tables;
select  * from info

Image(94)[1]

我们可以根据自己的配置设置运行那些主机及用户进行mysql的连接;

如果我们需要配置任何主机都可以连接的话,可以使用一下命令

1
2
GRANT ALL PRIVILEGES ON *.* TO  'root' @ '%'  IDENTIFIED BY  '123456'  WITH GRANT OPTION;
flush privileges;

Image(116)

接下来我们修改默认的mysql配置文件

1
2
3
4
5
6
7
8
vim  /etc/my .cnf
server- id  = 2                     #backup这台设置2
log-bin = mysql-bin
binlog- do -db=DB   #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-ignore-db = mysql,information_schema        #忽略写入binlog日志的库
auto-increment-increment = 2              #字段变化增量值
auto-increment-offset = 1               #初始字段ID为1
slave-skip-errors = all                        #忽略所有复制产生的错误

Image(117)

保存退出:  我们需要些对方的ip地址192.168.5.53

1
change master to master_host= '192.168.5.53' ,master_user= 'root' ,master_password= '123456' ,master_log_file= 'mysql-bin.000001'  ,master_log_pos=245;

Image(118)

添加防火墙端口

1
firewall-cmd --add-port= '3306/tcp'  --permanent

Image(119)

1
2
启动slave
slave start;

Image(108)[1]

主主同步配置完毕,查看同步状态Slave_IO和Slave_SQL是YES说明主主同步成功。

1
2
3
show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Image(120)

接下来我们测试一下

我们在第一台Mariadb的数据库表中插入一条数据,然后在第二台服务器上进行查看,是否会同步;

因为我们在配置的时候指定了DB这个数据库才会同步,所以我们需要在DB数据库中插入数据

我们当前数据库表中的数据只有一条

Image(121)

接下来我们插入一条数据;

1
insert into info( id ,name,sex,mail) values( '1' , 'll' , 'girl' , 'll@abc.com' );

Image(122)

插入完成后,我们在第二台服务器上进行查看;

我们查看到数据是已经同步了;

Image(123)

我们接下来在第二台服务器上进行插入一条数据,看看第一台服务器是否会同步;

1
insert into info( id ,name,sex,mail) values( '2' , 'zs' , 'boy' , 'zs@abc.com' );

Image(124)

接着我们在第一台服务器上进行查看

数据已经同步过来了

Image(125)

配置keepalived实现热备

我们首先在第一台服务器上进行安装

1
yum  install  -y keepalived

Image(126)

我们首先备份一下默认的配置文件;

1
cp  /etc/keepalived/keepalived .conf  /etc/keepalived/keepalived .conf.bak

Image(127)

我们查看默认配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
[root@db01 keepalived] # vim keepalived.conf
! Configuration File  for  keepalived
global_defs {
    notification_email {
      acassen@firewall.loc
      failover@firewall.loc
      sysadmin@firewall.loc
    }
    notification_email_from Alexandre.Cassen@firewall.loc
    smtp_server 192.168.200.1
    smtp_connect_timeout 30
    router_id LVS_DEVEL
}
vrrp_instance VI_1 {
     state MASTER
     interface eth0
     virtual_router_id 51
     priority 100
     advert_int 1
     authentication {
         auth_type PASS
         auth_pass 1111
     }
     virtual_ipaddress {
         192.168.200.16
         192.168.200.17
         192.168.200.18
     }
}
virtual_server 192.168.200.100 443 {
     delay_loop 6
     lb_algo rr
     lb_kind NAT
     nat_mask 255.255.255.0
     persistence_timeout 50
     protocol TCP
     real_server 192.168.201.100 443 {
         weight 1
         SSL_GET {
             url {
               path /
               digest ff20ad2481f97b1754ef3e12ecd3a9cc
             }
             url {
               path  /mrtg/
               digest 9b3a0c85a887a256d6939da88aabd8cd
             }
             connect_timeout 3
             nb_get_retry 3
             delay_before_retry 3
         }
     }
}
virtual_server 10.10.10.2 1358 {
     delay_loop 6
     lb_algo rr
     lb_kind NAT
     persistence_timeout 50
     protocol TCP
     sorry_server 192.168.200.200 1358
     real_server 192.168.200.2 1358 {
         weight 1
         HTTP_GET {
             url {
               path  /testurl/test .jsp
               digest 640205b7b0fc66c1ea91c463fac6334d
             }
             url {
               path  /testurl2/test .jsp
               digest 640205b7b0fc66c1ea91c463fac6334d
             }
             url {
               path  /testurl3/test .jsp
               digest 640205b7b0fc66c1ea91c463fac6334d
             }
             connect_timeout 3
             nb_get_retry 3
             delay_before_retry 3
         }
     }
     real_server 192.168.200.3 1358 {
         weight 1
         HTTP_GET {
             url {
               path  /testurl/test .jsp
               digest 640205b7b0fc66c1ea91c463fac6334c
             }
             url {
               path  /testurl2/test .jsp
               digest 640205b7b0fc66c1ea91c463fac6334c
             }
             connect_timeout 3
             nb_get_retry 3
             delay_before_retry 3
         }
     }
}
virtual_server 10.10.10.3 1358 {
     delay_loop 3
     lb_algo rr
     lb_kind NAT
     nat_mask 255.255.255.0
     persistence_timeout 50
     protocol TCP
     real_server 192.168.200.4 1358 {
         weight 1
         HTTP_GET {
             url {
               path  /testurl/test .jsp
               digest 640205b7b0fc66c1ea91c463fac6334d
             }
             url {
               path  /testurl2/test .jsp
               digest 640205b7b0fc66c1ea91c463fac6334d
             }
             url {
               path  /testurl3/test .jsp
               digest 640205b7b0fc66c1ea91c463fac6334d
             }
             connect_timeout 3
             nb_get_retry 3
             delay_before_retry 3
         }
     }
     real_server 192.168.200.5 1358 {
         weight 1
         HTTP_GET {
             url {
               path  /testurl/test .jsp
               digest 640205b7b0fc66c1ea91c463fac6334d
             }
             url {
               path  /testurl2/test .jsp
               digest 640205b7b0fc66c1ea91c463fac6334d
             }
             url {
               path  /testurl3/test .jsp
               digest 640205b7b0fc66c1ea91c463fac6334d
             }
             connect_timeout 3
             nb_get_retry 3
             delay_before_retry 3
         }
     }
}

通过修改后,我们将将默认的文件清空,然后粘贴下面内容

1
echo  /etc/keepalived/keepalived .conf

Image(128)

然后粘贴以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
global_defs {
    notification_email {
        gavin@ixmsoft.com              # 定义通知邮箱,有多个可以换行添加
}
    notification_email_from admin@ixmsoft.com # 定义发送邮件的邮箱
    smtp_server mail.ixmsoft.com              # 定义发件服务器
    smtp_connect_timeout 30                   # 定义连接smtp服务器超时时间
    router_id Mysql-HA
}
vrrp_instance VI_1 {
state BACKUP            #两台都设置BACKUP
interface ens160
virtual_router_id 51        #主备相同
priority 100            #优先级,backup设置90
advert_int 1
nopreempt              #不主动抢占资源,只在master这台优先级高的设置,backup不设置
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.5.88
}
}
virtual_server 192.168.5.88 3306 {
delay_loop 2
lb_algo rr               #LVS算法,用不到,我们就关闭了
lb_kind DR               #LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL
persistence_timeout 50   #同一IP的连接60秒内被分配到同一台真实服务器
protocol TCP
real_server 192.168.5.53 3306 {    #检测本地mysql,backup也要写检测本地mysql
weight 3
notify_down  /DATA/shell/mysql .sh     #当mysq服down时,执行此脚本,杀死keepalived实现切换
TCP_CHECK {
connect_timeout 3     #连接超时
nb_get_retry 3        #重试次数
delay_before_retry 3  #重试间隔时间
   }
}

Image(129)

我们启动keepalived服务

1
2
systemctl start keepalived
systemctl  enable  keepalived

Image(130)

接下来我们在DATA目录下创建shell目录添加mysql.sh脚本

1
2
3
4
5
cd  /DATA
mkdir  shell
vim mysql.sh
pkill keepalived
chmod  a+x mysql.sh

Image(131)

接着我们查看keepalived的网卡监听状态,虚拟IP已经监听

Image(132)

我们同样在第二台服务器上也安装keepalived

1
yum  install  -y keepalived

Image(133)

我们首先备份一下默认的配置文件;

1
cp  /etc/keepalived/keepalived .conf  /etc/keepalived/keepalived .conf.bak

Image(134)

然后将第一台服务器上的keepalived拷贝到第二台服务器上的keepalived路劲下替换keepalived.conf文件

1
scp  /etc/keepalived/keepalived .conf root@192.168.5.54: /etc/keepalived/

Image(135)

然后我们将第一台服务器下的mysql.sh拷贝到第二台对应的路劲

1
scp  /DATA/shell/mysql .sh root@192.168.5.54: /DATA/shell/

Image(136)

然后,我们要修改第二台服务器的keepalived.conf文件,因为刚才拷贝过来的数据需要修改

1
vim  /etc/keepalived/keepalived .conf

我们需要修改realserver的地址,指向本地192.168.5.54,然后修改weight权重值,我们备服务器修改成50

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
global_defs {
    notification_email {
        gavin@ixmsoft.com              # 定义通知邮箱,有多个可以换行添加
}
    notification_email_from admin@ixmsoft.com # 定义发送邮件的邮箱
    smtp_server mail.ixmsoft.com              # 定义发件服务器
    smtp_connect_timeout 30                   # 定义连接smtp服务器超时时间
    router_id Mysql-HA
}
vrrp_instance VI_1 {
state BACKUP            #两台都设置BACKUP
interface ens160
virtual_router_id 51        #主备相同
priority 50            #优先级,backup设置90
advert_int 1
#nopreempt             #不主动抢占资源,只在master这台优先级高的设置,backup不设置
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.5.88
}
}
virtual_server 192.168.5.88 3306 {
delay_loop 2
lb_algo rr               #LVS算法,用不到,我们就关闭了
lb_kind DR               #LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL
persistence_timeout 50   #同一IP的连接60秒内被分配到同一台真实服务器
protocol TCP
real_server 192.168.5.54 3306 {    #检测本地mysql,backup也要写检测本地mysql
weight 3
notify_down  /DATA/shell/mysql .sh     #当mysq服down时,执行此脚本,杀死keepalived实现切换
TCP_CHECK {
connect_timeout 3     #连接超时
nb_get_retry 3        #重试次数
delay_before_retry 3  #重试间隔时间
   }
}

Image(137)

保存退出后,我们启动keepalived服务

1
2
systemctl  enable  keepalived
systemctl start keepalived

Image(138)

我们第二台服务器的网卡监听状态,虚拟地址都 已经监听了

Image(139)

接下来我们需要在两台服务器上ping一下虚拟ip地址是否通

1
ping  192.168.5.88

Image(140)

Image(141)

我们找了一台windows机器进行测试

Image(142)

然后使用myslq连接工具进行测试,测试通过

Image(143)

我们查看连接后所有的数据信息都可以看见

Image(144)

接下来我们将第一台服务器服务停止。

1
2
systemctl stop keepalived
systemctl stop mariadb

Image(145)

客户端还是可以继续使用。

Image(146)

接下来我们使用客户端插入一条数据

1
insert into inf ( id ,name,sex,mail) values ( '3' , 'gavin' , 'boy' , 'gavin@abc.com' )

Image(147)

我们查看插入的数据

Image(148)

我们在第二台服务器上查看数据

1
select  * from info

Image(149)

接下来我们将第一台服务器的mariadb和keepalived服务启动起来,然后再查看数据

1
2
systemctl start mariadb
systemctl start keepalived

Image(150)

查看第一台的数据也会自动同步

1
select  * from info;

Image(151)



本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1888036,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
安全 关系型数据库 MySQL
CentOS7仅安装部署MySQL80客户端
通过上述步骤,你可以在CentOS 7上成功安装并配置MySQL 8.0客户端。这个过程确保你能够使用MySQL客户端工具连接和管理远程的MySQL数据库,而不需要在本地安装MySQL服务器。定期更新MySQL客户端可以确保你使用的是最新的功能和安全修复。
45 16
|
2月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
146 3
|
2月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
149 2
|
2月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
216 2
|
3月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置服务等,并与使用 RPM 包安装进行了对比,帮助读者根据需求选择合适的方法。编译源码安装虽然复杂,但提供了更高的定制性和灵活性。
308 2
|
21天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
47 3
|
21天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
54 3
|
21天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
72 2
|
1月前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
227 15
|
28天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。