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

来源:这里教程网 时间:2026-03-01 18:32:44 作者:

作者: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 数据库的核心维护操作,并附命令和输出结果,方便新手快速上手,也可作为老手的随查手册。欢迎收藏转发,如需更多内容如错误排查、性能优化等专题,敬请关注后续更新。 hhh6.jpg

面试技巧

面试时经常会被问到运维过什么版本的数据库,如果运维过   Oracle 8i、   9i这些老古董,通常会给面试官一个经验丰富、老前辈的印象,一个   8i OCP的认证绝对比   19C OCP更有说服力,   …… 说了这么多废话,其实是想打一个广告,欢迎加入   DBA   面试宝典知识星球,解锁更多面试技巧!

图片

相关推荐