MySQL安装配置完整教程 - 二进制、源码、包管理器方法
MySQL 安装与配置完全指南
MySQL作为最流行的开源关系型数据库之一,其安装与配置是开发者和管理员的必备技能。本文将详细介绍MySQL的各种安装方式及关键配置方法。
一、MySQL安装方式
1. 二进制包安装
二进制包安装是最简单快捷的方式,适合大多数生产环境。
Linux系统安装步骤:
# 下载官方二进制包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.12-x86_64.tar.gz
# 解压安装包
tar -xvf mysql-8.0.33-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
# 创建软链接
ln -s /usr/local/mysql-8.0.33-linux-glibc2.12-x86_64 /usr/local/mysql
# 创建mysql用户和组
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
# 初始化数据库
cd /usr/local/mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
bin/mysqld --initialize --user=mysql
bin/mysql_ssl_rsa_setup
实践建议:
- 生产环境建议使用二进制安装,稳定性高
- 注意记录初始化时生成的临时密码
- 建议将MySQL二进制目录加入PATH环境变量
2. 源码编译安装
源码安装适合需要自定义功能的场景,但过程较为复杂。
基本步骤:
# 安装依赖
apt-get install -y cmake gcc g++ libncurses5-dev
# 下载源码
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33.tar.gz
tar -zxvf mysql-8.0.33.tar.gz
cd mysql-8.0.33
# 编译配置
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci
# 编译安装
make && make install
实践建议:
- 编译前确保系统有足够内存(建议4G以上)
- 可以使用
ccmake
交互式配置工具调整编译选项 - 生产环境不建议使用源码编译,除非有特殊需求
3. 包管理器安装(apt/yum)
使用系统包管理器安装最为简便,适合快速部署。
Ubuntu/Debian系统:
# 添加MySQL APT仓库
wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb
dpkg -i mysql-apt-config_0.8.22-1_all.deb
apt-get update
# 安装MySQL服务器
apt-get install mysql-server
# 安全配置
mysql_secure_installation
CentOS/RHEL系统:
# 添加MySQL YUM仓库
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# 安装MySQL服务器
yum install mysql-community-server
# 启动服务
systemctl start mysqld
systemctl enable mysqld
# 查看临时密码
grep 'temporary password' /var/log/mysqld.log
实践建议:
- 包管理器安装会自动处理依赖和服务管理
- 安装后立即运行安全配置脚本(mysql_secure_installation)
- 注意不同Linux发行版的包名可能不同
4. Docker容器安装
Docker方式适合开发测试环境和云原生部署。
基本命令:
# 拉取官方镜像
docker pull mysql:8.0
# 运行容器
docker run --name mysql8 \
-e MYSQL_ROOT_PASSWORD=yourpassword \
-p 3306:3306 \
-v /my/custom:/etc/mysql/conf.d \
-v /my/data:/var/lib/mysql \
-d mysql:8.0 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
实践建议:
- 生产环境使用Docker时务必挂载数据卷持久化数据
- 可以通过环境变量配置root密码等参数
- 建议使用docker-compose管理多容器部署
二、配置文件详解
MySQL配置文件(my.cnf或my.ini)是控制MySQL行为的关键。
配置文件位置
- Linux:
/etc/my.cnf
或/etc/mysql/my.cnf
- Windows:
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
核心配置项
[mysqld]
# 基础设置
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
port=3306
# 内存配置
innodb_buffer_pool_size=4G # 建议为物理内存的50-70%
key_buffer_size=256M
sort_buffer_size=4M
read_buffer_size=1M
# 日志配置
log_error=/var/log/mysql/error.log
slow_query_log=1
slow_query_log_file=/var/log/mysql/mysql-slow.log
long_query_time=2
log_queries_not_using_indexes=1
# InnoDB配置
innodb_file_per_table=1
innodb_flush_log_at_trx_commit=1 # 1为最安全,2为折衷,0为性能最高
innodb_lock_wait_timeout=50
innodb_log_file_size=256M
实践建议:
- 修改配置后需要重启MySQL服务生效
- 使用
mysqld --verbose --help
查看所有可用选项 - 生产环境建议开启慢查询日志和错误日志
三、服务管理
启动与停止服务
Linux系统(systemd):
# 启动服务
systemctl start mysqld
# 停止服务
systemctl stop mysqld
# 重启服务
systemctl restart mysqld
# 查看状态
systemctl status mysqld
Windows系统:
# 启动服务
net start mysql80
# 停止服务
net stop mysql80
环境变量配置
将MySQL客户端工具加入PATH环境变量:
Linux系统:
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc
source ~/.bashrc
Windows系统:
在系统环境变量中添加MySQL的bin目录路径
实践建议:
- 生产环境建议使用systemd管理MySQL服务
- 配置合适的服务启动超时时间(默认可能太短)
- 重要操作前先停止服务备份数据
四、安装后必要操作
修改root密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
创建应用数据库和用户:
CREATE DATABASE app_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'app_user'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'%'; FLUSH PRIVILEGES;
安全加固:
mysql_secure_installation
通过以上步骤,您已经完成了MySQL的安装和基本配置。根据实际应用场景,可能还需要进一步优化配置参数。