1. Linux环境下MySQL数据库入门指南
作为最流行的开源关系型数据库之一,MySQL在Linux服务器上的部署占比超过70%。不同于Windows平台的图形化安装,Linux环境下需要掌握命令行操作才能高效完成数据库的配置与管理。本文将基于CentOS 8和MySQL 8.0版本,详解从安装配置到基础操作的完整流程。
提示:所有命令都需要在具有sudo权限的用户下执行,遇到权限问题时可在命令前添加sudo
1.1 环境准备与依赖检查
在开始安装前,建议先更新系统并检查现有MySQL组件:
# 更新系统软件包 yum update -y # 检查是否已安装旧版MySQL rpm -qa | grep mysql如果发现旧版本存在,需要先彻底卸载以避免冲突:
# 卸载MariaDB(CentOS默认包含) sudo yum remove mariadb-server mariadb-client mariadb-libs # 清理残留配置文件 sudo rm -rf /var/lib/mysql/ sudo rm -rf /etc/my.cnf1.2 官方仓库配置
MySQL官方提供了专属的YUM仓库,比系统默认仓库版本更新:
# 下载MySQL官方YUM源 wget https://dev.mysql.com/get/mysql80-community-release-el8-4.noarch.rpm # 安装仓库配置 sudo rpm -ivh mysql80-community-release-el8-4.noarch.rpm # 验证仓库是否启用 yum repolist enabled | grep mysql2. MySQL 8.0安装与初始化
2.1 核心组件安装
执行以下命令安装服务器和客户端工具:
sudo yum install -y mysql-community-server mysql-community-client安装完成后检查服务状态:
systemctl status mysqld2.2 安全初始化
首次启动需要进行安全配置:
# 启动服务 sudo systemctl start mysqld # 获取临时密码 sudo grep 'temporary password' /var/log/mysqld.log # 执行安全向导 sudo mysql_secure_installation初始化过程中需要:
- 修改root密码(需包含大小写字母、数字和特殊字符)
- 移除匿名用户
- 禁止root远程登录
- 删除测试数据库
- 重新加载权限表
2.3 防火墙配置
开放3306端口并重载规则:
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent sudo firewall-cmd --reload3. 基础数据库操作
3.1 连接MySQL服务器
使用root账户登录:
mysql -u root -p3.2 用户与权限管理
创建新用户并授权:
CREATE USER 'devuser'@'%' IDENTIFIED BY 'StrongPass123!'; GRANT ALL PRIVILEGES ON *.* TO 'devuser'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;查看用户权限:
SHOW GRANTS FOR 'devuser'@'%';3.3 数据库基本操作
创建测试数据库:
CREATE DATABASE testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;表操作示例:
USE testdb; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 插入数据 INSERT INTO users (username, email) VALUES ('user1', 'user1@example.com'), ('user2', 'user2@example.com'); -- 查询数据 SELECT * FROM users WHERE username LIKE 'user%';4. 日常维护与故障排查
4.1 备份与恢复
使用mysqldump进行逻辑备份:
# 全库备份 mysqldump -u root -p --all-databases > full_backup.sql # 单库备份 mysqldump -u root -p testdb > testdb_backup.sql恢复数据库:
mysql -u root -p testdb < testdb_backup.sql4.2 性能监控
查看运行状态:
SHOW STATUS LIKE 'Threads_connected'; SHOW PROCESSLIST;检查慢查询(需先在配置文件中启用):
SHOW VARIABLES LIKE 'slow_query%';4.3 常见问题处理
问题1:忘记root密码
- 修改/etc/my.cnf,在[mysqld]段添加:
skip-grant-tables - 重启服务后无需密码登录
- 执行ALTER USER修改密码
- 移除配置参数并重启
问题2:连接数过多
-- 查看最大连接数 SHOW VARIABLES LIKE 'max_connections'; -- 临时调整 SET GLOBAL max_connections = 200;5. 进阶配置建议
5.1 配置文件优化
/etc/my.cnf关键参数示例:
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # 内存配置 innodb_buffer_pool_size = 4G key_buffer_size = 256M # 日志配置 slow_query_log = 1 long_query_time = 2 log-error = /var/log/mysqld.log5.2 定期维护任务
设置自动备份脚本(crontab示例):
0 2 * * * /usr/bin/mysqldump -u root -pPASSWORD --all-databases | gzip > /backup/mysql_$(date +\%Y\%m\%d).sql.gz5.3 安全加固措施
- 定期审计用户权限
- 启用SSL连接
- 安装企业版防火墙插件
- 配置审计日志
重要提示:生产环境务必定期测试备份文件的可用性,避免备份文件损坏导致无法恢复