MySQL数据库管理以及备份

MySQL数据库管理以及备份

1)关系型数据库

重点:强调数据与数据之间的关系

mysql(免费,开源。8.0以后的版本不开源,不免费。目前主流的使用版本5.7) sqlserver oracle db2

  • mysql

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。

  • SQL Server

微软开发的关系型数据库管理系统,深度集成 Windows 生态,支持 Transact-SQL 语言,具备图形化管理工具(SSMS)和强大的企业级功能(如分布式事务、商业智能 BI)。特点:兼容性强(与.NET 框架无缝对接)、高可用性( Always On 集群)、内置数据加密与审计功能,适合企业级 ERP、CRM 系统及微软技术栈项目。但主要运行于 Windows 平台,开源生态较弱,授权成本较高。

  • Oracle

甲骨文公司的旗舰关系型数据库,以稳定性、安全性和高性能著称,支持大型跨国企业核心业务系统(如银行交易、电信计费)。核心优势:完整支持 ACID 事务、RAC 集群(实时应用集群)实现高可用、分区表处理海量数据、强大的 PL/SQL 编程能力。但架构复杂(需专业 DBA 运维)、授权费用高昂,主要应用于金融、政府等对可靠性要求极高的场景。

  • DB2

IBM 研发的企业级关系型数据库,主打安全性、可扩展性和大数据处理能力,支持多平台(Linux/UNIX/Windows)。特色功能:pureScale 集群技术(线性扩展性能)、BLU 加速(内存列存储)、高级压缩与加密算法,适合数据仓库、OLAP 分析及合规性要求高的行业(如医疗、保险)。与 IBM 生态(如 WebSphere、Cognos)深度整合,但市场份额低于 Oracle 和 SQL Server,学习成本较高。

2)非关系型数据库

memcache redis hbase

  • Memcache

Memcache 是一款开源的高性能分布式内存缓存系统,诞生于 2003 年。它通过将数据存储在内存中,大幅减少对后端数据库的访问压力,从而提升 Web 应用响应速度。核心特点:纯内存存储(读写速度极快)、支持简单键值对、分布式集群(需客户端分片)、自动淘汰过期数据。但不支持持久化,断电后数据丢失,适合缓存高频访问的简单数据(如会话、热门商品信息),减轻数据库负担。

  • Redis

Redis(Remote Dictionary Server)是 2009 年推出的开源内存数据库,支持丰富的数据结构(字符串、哈希、列表、集合、有序集合等),被誉为 “数据结构服务器”。它的数据优先存储于内存,同时支持 RDB 快照和 AOF 日志持久化,保障数据安全。具备原子操作、主从复制、哨兵和集群等高可用特性,广泛用于缓存、排行榜、计数器、消息队列等场景,功能全面且性能卓越。

  • HBase

HBase 是 Apache 开源的分布式列式数据库,基于 Hadoop 架构(HDFS 存储、ZooKeeper 协调),专为存储海量数据(数十亿行 × 数百万列)并提供实时随机读写而设计。采用列式存储,适合处理稀疏数据;支持自动分片和水平扩展至数千节点;基于 HDFS 实现高可靠性和强一致性。典型场景包括 PB 级日志存储、电商评论实时查询、物联网设备数据处理等,适合海量冷数据的高效存储与访问。

重点:强调数据的存储

1.数据库管理mysqladmin命令

mysqladmin 是 MySQL 官方提供的管理工具,通过 MySQL 客户端协议 连接服务器,可执行管理操作。

1)命令格式

mysqladmin [选项] [命令]

2)选项说明

  • -h, --host=主机名:指定 MySQL 服务器地址(默认 localhost)。
  • -u, --user=用户名:连接的用户名。
  • -p, --password[=密码]:连接密码(建议用 -p 后交互式输入,避免明文显示)。
  • -P, --port=端口:指定服务器端口(默认 3306)。

3)用法示例

查看服务器状态mysqladmin -uroot -p status

mysqladmin -uroot -p status

[root@slavedb ~]# mysqladmin -uroot -pAa123456= status
Uptime: 13667  Threads: 2  Questions: 1467  Slow queries: 0  Opens: 295  Flush tables: 1  Open tables: 177  Queries per second avg: 0.107

关闭MySQL服务器mysqladmin -uroot -p shutdown

mysqladmin -uroot -p shutdown

[root@slavedb ~]# mysqladmin -uroot -pAa123456= shutdown
[root@slavedb ~]# mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@slavedb ~]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Sun 2025-06-22 20:09:55 CST; 2min 28s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 10969 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 10951 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 10972 (code=exited, status=0/SUCCESS)

Jun 22 16:20:33 slavedb systemd[1]: Starting MySQL Server...
Jun 22 16:20:33 slavedb systemd[1]: Started MySQL Server.

重新加载权限表mysqladmin -uroot -p reload

#无需重启服务器,修改权限后常用
mysqladmin -uroot -p reload

创建数据库mysqladmin -uroot -p create woniu

mysqladmin -uroot -p create woniu

删除数据库

mysqladmin -uroot -p drop woniu

[root@slavedb ~]# mysqladmin -uroot -p drop woniu
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.

Do you really want to drop the 'woniu' database [y/N] y
Database "woniu" dropped

修改用户密码mysqladmin -uroot -p password "Aa654321="

mysqladmin -uroot -p password "Aa654321="

检查服务器是否存活mysqladmin -uroot -p ping

mysqladmin -uroot -p ping

[root@slavedb ~]# mysqladmin -uroot -pAa654321= ping
mysqld is alive

查看MySQL版本信息mysqladmin -uroot -p version

mysqladmin -uroot -p version

[root@slavedb ~]# mysqladmin -uroot -p version
Enter password: 
mysqladmin  Ver 8.42 Distrib 5.7.44, for Linux on x86_64
Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version      5.7.44-log
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/lib/mysql/mysql.sock
Uptime:         9 min 15 sec

Threads: 2  Questions: 29  Slow queries: 0  Opens: 119  Flush tables: 1  Open tables: 112  Queries per second avg: 0.052

2.mysql -- 数据库连接

MySQL 命令行客户端(mysql)是管理和操作 MySQL 数据库的核心工具,支持交互式执行 SQL 语句、批量处理脚本等功能。

1)命令格式

mysql [选项] [数据库名]

2)选项说明

选项 描述 示例
-h, --host=主机 指定服务器地址(默认 localhost mysql -h 192.168.1.100
-u, --user=用户 指定用户名 mysql -u root
-p, --password 指定密码(交互式输入) mysql -p
-P, --port=端口 指定端口(默认 3306) mysql -P 3307
--ssl-ca=证书路径 使用 SSL 加密连接 mysql --ssl-ca=ca.pem
--defaults-file 指定配置文件 mysql --defaults-file=~/.my.cnf

3)用法示例

本地连接mysql -uroot -p

mysql  -uroot -p

远程连接mysql -h

mysql  -h 服务器地址  -u用户名   -p密码  

file

  • 需要授权远程登录
授权
creatae user 'root'@'%' identified by '123456';
grant all privileges on *.* to 'root'@'%';
flush privileges;

file

# 客户端远程连接数据库
mysql -h 192.168.200.166 -uhaha -p

3.mysqldunmp数据库备份

  • mysqldump 是 MySQL 自带的备份工具。可以保证数据的一致性和服务的可用性
  • 它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的 insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原

MySQLdump 使用 MySQL 客户端协议(MySQL Client/Server Protocol)连接到数据库服务器。这是一种基于 TCP/IP 的二进制协议,用于客户端(如 mysql 命令行、MySQL Workbench、mysqldump)与 MySQL 服务器之间的通信。默认通过 3306 端口通信,数据以二进制格式传输,相比文本协议更高效,支持加密(如 SSL/TLS)。

1)命令格式

mysqldump [选项] 数据库名   [表名]       > 脚本名
mysqldump [选项] --数据库名 [选项 表名]   > 脚本名
mysqldump [选项] --all-databases [选项] > 脚本名

2)选项说明

参数名 缩写 含义
—host -h 服务器IP地址
—port -P 服务器端口号
—user -u MySQL 用户名
—pasword -p MySQL 密码
—databases -B 指定要备份的数据库
—all-databases -A 备份mysql服务器上的所有数据库
—compact 压缩模式,产生更少的输出
—comments 添加注释信息
—complete-insert 输出完成的插入语句
—lock-tables 备份前,锁定所有数据库表
—no-create-db/—no-create-info 禁止生成创建数据库语句
—force 当出现错误时仍然继续备份操作
—default-character-set 指定默认字符集
—add-locks 备份数据库表时锁定数据库表
-single-transaction 保证数据的一致性和服务的可用性
—master-data=1\ 2 通常等于1,记录binlog日志位置与文件名,追加至备份文件中
—flush-logs -F 备份之前刷新日志
—events -E 备份事件调度器代码
—triggers -T 备份触发器
—routines -R 备份存储过程和存储函数

备份所有数据库

mysqldump --all-databases -uroot -p  > all.db
还原数据库:
mysql -uroot -p < all.db

备份单个数据库或数据表

  • 需要手动创建数据库
# 备份单个数据库
mysqldump  -uroot -p cloud2 > cloud2.db
# 需要手动创建数据库
mysqladmin -uroot -p create cloud2
# 还原数据库
mysql -uroot -p cloud2 < clou2.db

# 备份数据表
mysqldump -uroot -p cloud2 students > students.db
# 需要手动创建数据库
mysqladmin -uroot -p create cloud2
# 还原数据表
mysql -uroot -p cloud2 < clou2.db
  • 不需要手动创建数据库 –databases
mysqldump  -uroot -p   --databases cloud2 > cloud2.db
# 不需要手动创建数据库,直接还原
mysql -uroot -p  < clou2.db

# 备份多个数据库
mysqldump -uroot -p --databases cloud2 woniu >  cloud3.db
# 还原数据库
mysql -uroot -p  < clou2.db
持续更新中~
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇