部署MySQL数据库时常见错误

登录数据库 时,可能会出现如图错误

        1.确认是否部署MySQL服务

        2.过滤MySQL端口号,查看服务是否开启(如图上半部分,则是服务未开启)

        3.如图部分,则是密码错误

        4.如果忘记了 mysql 的密码,或者登陆提示报错,然后密码不对的解决办法

                1)修改 MySQL 的登录设置: # vi /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables 保存并且退出 vi。

                2)重新启动 mysql

                3)登录修改MySQL密码

update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
flush privileges;

                4)将 MySQL 的登录设置修改回来 # vi /etc/my.cnf 将刚才在[mysqld]的段中加上的 skip-grant-tables 删除 保存并且退出 vi。 5)重新启动 mysql

远程连接数据库很慢,响应很久,可以在/etv/my.cnf中添加配置(即跳过名称解析)

使用Xtrabackup工具备份与恢复

Xtrabackup是由Percona团队开发的用于MySQL数据库的物理热备份工具。它支持InnoDB和XtraDB存储引擎,具备备份速度快、不影响业务运行、支持压缩和自动校验等特点。Xtrabackup目前被各大云厂商广泛采用,是MySQL备份的首选方案之一。 

        1.安装Xtrabackup(上传软件包percona-xtrabackup-2.4.29-Linux-x86_64.glibc2.17.tar.gz与qpress-11-linux-x64.tar)

tar zxf percona-xtrabackup-2.4.29-Linux-x86_64.glibc2.17.tar.gz
mv percona-xtrabackup-2.4.29-Linux-x86_64.glibc2.17 /usr/local/xtrabackup
echo 'export PATH=$PATH:/usr/local/xtrabackup/bin' >> /etc/profile
source /etc/profile
tar -xf qpress-11-linux-x64.tar -C /usr/local/bin
source /etc/profile

       登录MySQL服务,创建用户管理备份恢复

CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';
GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO
       'bkpuser'@'localhost';
#刷新配置
FLUSH PRIVILEGES;

        开始备份

bakdir="/backup/fullbackups/$(date '+%F')"
mkdir -p $bakdir

# --backup 备份
# --compress 压缩
xtrabackup --defaults-file=/etc/my.cnf --user=bkpuser --password=s3cret --backup --compress --target-dir=$bakdir

成功备份则会回显信息                备份到的位置 /backup/fullbackups/下的文件里  

                恢复

        

#关闭数据库
systemctl stop mysqld

# 解压备份数据
xtrabackup --defaults-file=/etc/my.cnf --user=bkpuser --password=s3cret --decompress --target-dir=$bakdir
# 准备备份文件以供恢复
xtrabackup --prepare --target-dir=$bakdir
# 恢复数据
xtrabackup --defaults-file=/etc/my.cnf --user=bkpuser --password=s3cret --copy-back --target-dir=$bakdir

# 修改权限,替换成自己的数据存储目录
chown -R mysql:mysql /usr/local/mysql/data/

# 然后启动MySQL即可
systemctl start mysqld

增量备份

        基于完全备份的基础上

        由于上述操作中创建了一个文件,会引起冲突,所以增量前,删除文件

rm -rf /backup/fullbackups/2024-08-04/

#开始备份
fulldir="/backup/fullbackups/$(date '+%F')"
incdir="/backup/incrementalbackups/$(date '+%F')"
mkdir -p $fulldir
mkdir -p $incdir

xtrabackup --defaults-file=/etc/my.cnf --user=bkpuser --password=s3cret --backup --compress --target-dir=$fulldir

#在数据库创建差异数据,用来对照实验
#开始增量备份
xtrabackup --defaults-file=/etc/my.cnf --user=bkpuser --password=s3cret --backup --compress --target-dir=$incdir --incremental-basedir=$fulldir

                如图代表增量备份完成,上面是完全备份存放的数据,下面是增量备份存放的数据

         增量恢复

#关闭服务
systemctl stop mysqld

# 解压备份数据
xtrabackup --defaults-file=/etc/my.cnf --user=bkpuser --password=s3cret --decompress --target-dir=$fulldir
xtrabackup --defaults-file=/etc/my.cnf --user=bkpuser --password=s3cret --decompress --target-dir=$incdir

# 准备数据
xtrabackup --prepare --apply-log-only --target-dir=$fulldir

# 把增量备份的数据合并到完整备份里面
xtrabackup --prepare --apply-log-only --target-dir=$fulldir --incremental-dir=$incdir

# 恢复数据
xtrabackup --defaults-file=/etc/my.cnf --user=bkpuser --password=s3cret --copy-back --target-dir=$fulldir

# 修改权限,替换成自己的数据存储目录
chown -R mysql:mysql /usr/local/mysql/data/

# 然后启动MySQL即可
systemctl start mysqld

        

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值