🔧 MySQL 管理

MySQL 服务管理概述

MySQL 管理包括服务启动停止、配置文件管理、用户权限管理、性能监控等核心任务。掌握这些技能对于维护稳定的数据库环境至关重要。

服务管理命令

Linux 系统

# 启动 MySQL 服务 sudo systemctl start mysql # 或者 sudo service mysql start # 停止 MySQL 服务 sudo systemctl stop mysql # 重启 MySQL 服务 sudo systemctl restart mysql # 查看服务状态 sudo systemctl status mysql # 设置开机自启 sudo systemctl enable mysql

Windows 系统

# 启动 MySQL 服务 net start mysql # 停止 MySQL 服务 net stop mysql # 通过服务管理器 services.msc

macOS 系统

# 启动 MySQL 服务 sudo /usr/local/mysql/support-files/mysql.server start # 停止 MySQL 服务 sudo /usr/local/mysql/support-files/mysql.server stop # 重启 MySQL 服务 sudo /usr/local/mysql/support-files/mysql.server restart

配置文件管理

📁 配置文件位置

常用配置参数

[mysqld] # 服务器配置 port = 3306 bind-address = 127.0.0.1 # 字符集配置 character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci # 内存配置 innodb_buffer_pool_size = 1G key_buffer_size = 256M # 连接配置 max_connections = 200 max_connect_errors = 10 # 日志配置 log-error = /var/log/mysql/error.log slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 2

用户和权限管理

创建用户

-- 创建新用户 CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; -- 创建可以从任何主机连接的用户 CREATE USER 'username'@'%' IDENTIFIED BY 'password'; -- 修改用户密码 ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password';

权限管理

-- 授予所有权限 GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost'; -- 授予特定数据库权限 GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'username'@'localhost'; -- 授予特定表权限 GRANT SELECT, INSERT ON database_name.table_name TO 'username'@'localhost'; -- 刷新权限 FLUSH PRIVILEGES; -- 查看用户权限 SHOW GRANTS FOR 'username'@'localhost'; -- 撤销权限 REVOKE INSERT ON database_name.* FROM 'username'@'localhost'; -- 删除用户 DROP USER 'username'@'localhost';

性能监控

查看服务器状态

-- 查看服务器状态 SHOW STATUS; -- 查看特定状态变量 SHOW STATUS LIKE 'Connections'; SHOW STATUS LIKE 'Threads_connected'; SHOW STATUS LIKE 'Queries'; -- 查看进程列表 SHOW PROCESSLIST; -- 查看服务器变量 SHOW VARIABLES; -- 查看引擎状态 SHOW ENGINE INNODB STATUS;

性能分析

-- 启用慢查询日志 SET GLOBAL slow_query_log = 'ON'; SET GLOBAL long_query_time = 1; -- 查看表状态 SHOW TABLE STATUS FROM database_name; -- 分析表 ANALYZE TABLE table_name; -- 优化表 OPTIMIZE TABLE table_name;

备份和恢复

使用 mysqldump 备份

# 备份单个数据库 mysqldump -u username -p database_name > backup.sql # 备份所有数据库 mysqldump -u username -p --all-databases > all_backup.sql # 备份特定表 mysqldump -u username -p database_name table_name > table_backup.sql # 备份结构不备份数据 mysqldump -u username -p --no-data database_name > structure_only.sql

恢复数据

# 恢复数据库 mysql -u username -p database_name < backup.sql # 恢复所有数据库 mysql -u username -p < all_backup.sql

⚠️ 管理注意事项