暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

MySQL基础维护实操手册:从启停到备份恢复

作者:Digital Observer(施嘉伟)
Oracle ACE Pro: Database
PostgreSQL ACE Partner
11年数据库行业经验,现主要从事数据库服务工作
拥有Oracle OCM、DB2 10.1 Fundamentals、MySQL 8.0 OCP、WebLogic 12c OCA、KCP、PCTP、PCSD、PGCM、OCI、PolarDB技术专家、达梦师资认证、数据安全咨询高级等认证
ITPUB认证专家、PolarDB开源社区技术顾问、HaloDB技术顾问、TiDB社区技术布道师、青学会MOP技术社区专家顾问、国内某高校企业实践指导教师
公众号:Digital Observer;CSDN:施嘉伟;ITPUB:sjw1933;墨天轮:Digital Observer;PGFans:施嘉伟。

MySQL 作为主流开源数据库,广泛应用于各类生产环境。本文结合实战,总结了 MySQL 常用维护操作,包括数据库启停、用户管理、对象创建、DML 使用,以及备份与恢复等,附带命令执行结果,便于快速查阅和验证。

一、数据库启停

启动数据库

mysqld_safe --defaults-file=/etc/my.cnf &

或使用服务方式:

service mysqld start

启动成功日志示例:

2023-03-18T14:40:51.085291+08:00 0 [System] [MY-010931] [Server] /mysql/app/bin/mysqld: ready for connections. Version: '8.0.32'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server - GPL.

停止数据库

mysqladmin -uroot -pmysql shutdown

或:

service mysqld stop

二、用户管理

创建用户并授权

create user root@'%' identified by 'mysql'; grant all on *.* to root@'%';

删除用户

drop user root@'%';

查看权限与撤销权限

show grants for root@'%';

输出示例:

+----------------------------------------------------------+
| Grants for root@%                                        |
+----------------------------------------------------------+
| GRANT SELECT ON *.* TO `root`@`%`                        |
| GRANT SELECT ON `hzmc`.* TO `root`@`%`                   |
| GRANT SELECT, SELECT (`id`) ON `hzmc`.`lq` TO `root`@`%` |
+----------------------------------------------------------+

撤销部分权限:

revoke select on hzmc.lq from root@'%';

撤销所有权限:

revoke all on *.* from root@'%';

三、创建对象

创建数据库和表

create database test; use test; create table cons1( id int primary key auto_increment, c1 varchar(40) default 'aaa', id2 bigint unique, id3 bigint not null );

查看表结构:

desc cons1;

输出示例:

+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(20)     | NO   | PRI | NULL    | auto_increment |
| c1    | varchar(40) | YES  |     | aaa     |                |
| id2   | bigint(20)  | YES  | UNI | NULL    |                |
| id3   | bigint(20)  | NO   |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+

查看建表语句:

show create table cons1\G

输出示例:

CREATE TABLE `cons1` (
  `id` int(20) NOT NULL AUTO_INCREMENT,
  `c1` varchar(40) DEFAULT 'aaa',
  `id2` bigint(20) DEFAULT NULL,
  `id3` bigint(20) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id2` (`id2`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

创建索引

create index cons1_id3 on cons1(id3) using btree;

查看索引信息:

show index from cons1\G

输出片段:

Table: cons1
Non_unique: 1
Key_name: cons1_id3
Column_name: id3
Index_type: BTREE
Visible: YES

四、DML操作

插入数据

insert into cons1 values(1, 'AAAA', 1, 1);

更新数据

update cons1 set c1='BBBB' where id=100;

删除数据

delete from cons1 where id=101;

删除表/库

drop table cons1; drop database test;

清空表数据

truncate table cons1;

五、备份与恢复

逻辑热备(mysqldump)

全库备份:

mysqldump -uroot -pmysql --single-transaction --master-data=2 -E -R --all-databases > full.sql

备份指定数据库:

mysqldump -uroot -pmysql --databases hzmc test > database.sql

备份指定表:

mysqldump -uroot -pmysql hzmc a b > table.sql

恢复数据:

mysql -uroot -pmysql < full.sql

若启用 GTID,可加 --set-gtid-purged=off 避免恢复时冲突。

物理热备(Xtrabackup)

备份:

xtrabackup --defaults-file=/etc/my.cnf -uroot -pmysql --backup --target-dir=/root/backup

准备备份:

xtrabackup --prepare --target-dir=/root/backup

恢复:

xtrabackup --copy-back --target-dir=/root/backup

恢复前应停止数据库,并清空数据目录。

物理冷备

在数据库关闭状态下,直接复制数据目录:

cp -r /var/lib/mysql /backup/mysql_202506

总结

本文涵盖了 MySQL 数据库的核心维护操作,并附命令和输出结果,方便新手快速上手,也可作为老手的随查手册。欢迎收藏转发,如需更多内容如错误排查、性能优化等专题,敬请关注后续更新。
IMG_6768 2.jpg
hhh6.jpg

最后修改时间:2025-06-27 15:18:17
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论