备份MySQL脚本-shell版
发表于|更新于|基础运维
|浏览量:
备份数据库, 并排除系统库, 使用 mysqldump
1 | #!/bin/bash |
文章作者: 张理坤
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 杂烩饭!
相关推荐
2025-07-24
优雅地给正在运行的MySQL添加从库
前言之前写过一篇 MySQL主从同步配置 给 MySQL 配置从库,在主库在使用的情况下,需要将主库进行禁止写入操作,然后再导出导入,如果库比较大的话, 会对业务造成一定的影响。这篇文章主要介绍如何不停机进行添加从库。 主库操作开启 binlog123[mysqld]log_bin=mysql-binserver-id=1 这里注意 server-id 主从不能一样, 配置完成重启 mysql 创建用于同步的用户账号登陆数据库 1mysql -hlocalhost -uroot -ppassword 创建用户并授权 1CREATE USER 'repl'@'%' IDENTIFIED BY '123456'; 授权 12GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';flush privileges; 导出数据库 sql1mysqldump -uroot -ppassword -hlocalhost -P3306 --master-...
2025-07-24
解决MySQL 5.7在Redhat 9中启动报错:libncurses.so.5和libtinfo.so.5缺失问题
采用二进制安装 MySQL 服务的时候, 之前在 CentOS 7 系统中,直接 yum 安装依赖包就可以正常运行,但是到了 RHEL 9 系统下, 会报错找不到 libncurses.so.5, 根据经验需要查找一下这个库属于哪个包: 1yum provides libncurses.so.5 找不到这个包 不考虑版本,再次搜索 1yum provides libncurses.so.* 发现可以找到 6.2 的版本, 安装这个包 1yum install ncurses-libs 查看这个 rpm 包包含的文件: 1rpm -ql ncurses-libs | grep libncurses.so 此时需要做一个软链接(前提是此版本可以向后兼容,至少在 MySQL 5.7 这里运行是没问题的。) 1ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5 修改完成,报另一个错误了: 同样的方法, 再创建一个软链接: 1ln -s /usr/lib64/libtinfo.so.6 /usr/lib64...
2026-03-24
Shell数学运算
bash 自带的数学运算 不依赖其他包,只要你的 shell 是 bash 1234echo $(( 1 + 1 ))echo $(( 1 - 3 ))echo $(( 10 * 3 ))echo $(( 10 / 3 )) expr expr 可以当计算器用不过它主要还是个计数器 字符串操作12345678# 计算字符串长度expr length "hello world"# 抓取字符串,3表示从第3个字符开始,5表示抓取的字符串长度expr substr "hello world" 3 5# 抓取第一个字符串出现的位置expr index "hello world" o 四则运算1234expr 10 % 3expr 10 + 10expr 30 / 3 / 2expr 30 \* 3 # 使用乘号时,必须用反斜线屏蔽其特定含义。 bc bc 是一个命令行的计算器工具,有些过于精简的发行版没有自带。 支持浮点数四则运算 123456789101112131415161718echo &q...
2026-03-24
自动清理日志脚本
公司的业务服务会打日志到磁盘, 程序已经做了日志切割, 时间一长磁盘占满会导致业务异常, 普通的清理逻辑是使用 crontab 定时删除文件, 比如每天 1 点删除创建日期超过 30 天的日志文件, 大部分情况下工作是 OK 的, 但是执行周期太长, 如果当天日志暴增, 不能及时删除文件. 也会有隐患, 优化版脚本如下: 日志清理分以下几种: 历史日志, 并且未在写入的日志, 这种可以直接删除掉. 当前正在写入的日志, 需要清理, 这种不能删除, 可以通过清空文件的方式来释放空间 set -euo pipefail 的作用:set -e: 脚本中有任何一条命令执行失败, 整个脚本就失败set -u: 脚本中的变量有任何一个变量为空, 整个脚本执行失败-o pipefail: 脚本中的管道中任何一条命令执行失败, 也会认为脚本执行失败 脚本内容: 123456789101112131415161718192021222324252627282930313233#!/bin/bashset -uo pipefail# 磁盘的文件系统(df -h里面显示的)FILESYSTEM...
2026-03-24
查看Navicat保存的密码
Navicat 密码一旦保存, 再次编辑就没法查看密码是什么了, 包括之前可以使用的星号密码查看器也看不到密码, 我们可以通过导出链接文件, 然后通过解密被加密的密码来获取密码原文. 导出加密密码打开 Navicat – 文件 – 导出连接 接下来的弹窗里, 勾选导出密码, 然后导出成 ncx 文件 用文本编辑器打开 connections.ncx 文件, 复制 password 的值, 这个就是加密后的密码. 使用 PHP 解密电脑没有 PHP 环境, 所以选择使用 Docker 来运行 PHP, 操作如下: 准备解密脚本vim navicat-decode-password.php 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210...
2025-07-24
MySQL Binlog 常用操作记录
本文记录一些日常使用 MySQL binlog 的命令记录,方便日后查询。 开启 binlog 日志 (在 [mysqld] 下修改或添加如下配置)123server-id=1log-bin=mysql-binbinlog_format=MIXED binlog 日志模式12345678910Mysql复制主要有三种方式:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复制(mixed-based replication, MBR)。对应的,binlog的格式也有三种:STATEMENT,ROW,MIXED。1、STATEMENT模式(SBR)每一条会修改数据的sql语句会记录到binlog中。优点是并不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能。缺点是在某些情况下会导致master-slave中的数据不一致(如sleep()函数, last_insert_id(),以及user-defined functions...
评论
公告
此博客为我记录运维工作总结所用,供网友阅读参考,如有侵权,请通知我,我会核实后进行处理。
欢迎加入技术交流群: