MySQL 从安装到备份,配置、权限、mysqldump 备份恢复全流程

42 阅读4分钟

一、MySQL 安装与配置(Windows/Linux 通用流程)

1. 初始配置与登录

  • Linux 初始密码获取:安装后默认生成临时密码,通过 grep 'temporary password' /var/log/mysqld.log 查看,复制临时密码登录 MySQL:mysql -u root -p,粘贴密码后回车。

  • 密码修改:首次登录必须修改密码,执行 ALTER USER 'root'@'``localhost``' IDENTIFIED BY '新密码';(MySQL 8.0 要求密码长度≥8 位,包含大小写、数字和特殊符号)。

  • 远程登录配置:默认 root 仅允许本地登录,若需远程连接,执行 update mysql.user set host='%' where user='root';,再刷新权限:flush privileges;

  • 防火墙开放端口:Linux 需开放 3306 端口,firewall-cmd --add-port=3306/tcp --permanent,重启防火墙:firewall-cmd --reload

二、MySQL 用户权限管理(实操指南)

1. 创建新用户

语法:CREATE USER '用户名'@'访问主机' IDENTIFIED BY '密码';

  • 示例 1:创建仅本地访问的用户 test,密码 Test@1234CREATE USER 'test'@'``localhost``' IDENTIFIED BY 'Test@1234';

  • 示例 2:创建允许任意主机访问的用户 dev,密码 Dev@5678CREATE USER 'dev'@'%' IDENTIFIED BY 'Dev@5678';(生产环境不建议用 %,需指定具体 IP)

2. 授权用户权限

语法:GRANT 权限类型 ON 数据库.表名 TO '用户名'@'访问主机';

  • 常用权限类型:SELECT(查询)、INSERT(插入)、UPDATE(修改)、DELETE(删除)、CREATE(创建数据库 / 表)、DROP(删除数据库 / 表)、ALL PRIVILEGES(所有权限)

  • 示例 1:给 test 用户授权 test_db 数据库所有表的查询和插入权限:GRANT SELECT,INSERT ON test_db.* TO 'test'@'``localhost``';

  • 示例 2:给 dev 用户授权所有数据库所有表的所有权限(谨慎使用):GRANT ALL PRIVILEGES ON *.* TO 'dev'@'%';

  • 授权后必须刷新权限:flush privileges;

3. 查看用户权限

语法:SHOW GRANTS FOR '用户名'@'访问主机';

示例:SHOW GRANTS FOR 'test'@'localhost';

4. 回收用户权限

语法:REVOKE 权限类型 ON 数据库.表名 FROM '用户名'@'访问主机';

示例:回收 test 用户的插入权限:REVOKE INSERT ON test_db.* FROM 'test'@'localhost';,刷新权限:flush privileges;

5. 删除用户

语法:DROP USER '用户名'@'访问主机';

示例:DROP USER 'dev'@'%';

三、MySQL 备份与恢复(mysqldump 工具详解)

1. mysqldump 备份操作(命令行执行)

(1)备份单个数据库

语法:mysqldump -u 用户名 -p 数据库名 > 备份文件路径.sql

示例:备份 test_db 数据库到 /backup/test_db_2024.sql(Linux)或 D:\backup\test_db_2024.sql(Windows):

mysqldump -u root -p test_db > /backup/test_db_2024.sql

执行后输入 root 密码,等待备份完成(备份文件为 SQL 脚本,包含建表语句和数据)。

(2)备份多个数据库

语法:mysqldump -u 用户名 -p --databases 数据库1 数据库2 > 备份文件路径.sql

示例:同时备份 test_dbdev_dbmysqldump -u root -p --databases test_db dev_db > /backup/multi_db_2024.sql

(3)备份所有数据库

语法:mysqldump -u 用户名 -p --all-databases > 备份文件路径.sql

示例:备份 MySQL 中所有数据库:mysqldump -u root -p --all-databases > /backup/all_db_2024.sql

(4)备份时排除某些表

语法:mysqldump -u 用户名 -p 数据库名 --ignore-table=数据库名.表名1 --ignore-table=数据库名.表名2 > 备份文件路径.sql

示例:备份 test_db 但排除 log 表和 temp 表:mysqldump -u root -p test_db --ignore-table=test_db.log --ignore-table=test_db.temp > /backup/test_db_no_log.sql

2. MySQL 恢复操作

(1)通过 mysql 命令恢复(推荐)

语法:mysql -u 用户名 -p 数据库名 备份文件路径.sql

示例:恢复 test_db 数据库:mysql -u root -p test_db _2024.sql(需确保 test_db 已存在,若不存在先创建:CREATE DATABASE test_db;

(2)登录 MySQL 后恢复

先登录 MySQL:mysql -u root -p,切换到目标数据库:USE test_db;,执行恢复命令:SOURCE 备份文件路径.sql;

示例:SOURCE /backup/test_db_2024.sql;(Windows 路径需用斜杠 D:/backup/test_db_2024.sql 或双反斜杠 D:\\backup\\test_db_2024.sql

3. 备份恢复注意事项

  • 备份时建议关闭写入操作(如暂停应用服务),避免数据不一致;

  • 定期备份:生产环境建议每天自动备份,可通过 Linux 定时任务(crontab)或 Windows 任务计划程序实现;

  • 备份文件验证:备份后可随机抽查 SQL 文件,或测试恢复到测试环境,确保备份有效;

  • MySQL 8.0 备份的文件恢复到 5.7 及以下版本可能存在兼容性问题,需注意版本匹配。