在Linux系统中通过命令行安装MySQL是运维人员和开发者必备的技能之一。该过程涉及系统兼容性检查、软件包管理、依赖处理、安全配置等多个环节,需兼顾不同发行版的特性(如Ubuntu的APT、CentOS的YUM)。本文将从环境准备、仓库配置、安装执行、初始化设置等八个维度展开分析,并通过对比表格揭示不同平台的操作差异。
一、系统环境兼容性检查
安装前需确认操作系统版本、硬件资源及已安装软件的兼容性。
- 通过
uname -a
查看内核版本,确保支持MySQL运行 - 检查内存和磁盘空间(建议至少2GB内存+500MB可用空间)
- 排查冲突端口(默认3306端口是否被占用)
检查项 | 命令 | 说明 |
---|---|---|
内核版本 | uname -a | 确认系统类型(x86_64/aarch64) |
内存状态 | free -h | 确保可用内存≥2GB |
磁盘空间 | df -h | 检查/var/lib/mysql目录剩余空间 |
端口占用 | netstat -tuln | grep 3306 | 避免与其他服务冲突 |
二、配置官方软件仓库
直接使用系统仓库可能导致版本过旧,需添加MySQL官方源或第三方源。
- **Ubuntu/Debian**:
wget https://repo.mysql.com/mysql-apt-config_0.8.24-1_all.deb sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb
- **CentOS/RHEL**:
wget https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 sudo rpm --import RPM-GPG-KEY-mysql-2022 sudo yum install mysql80-community-release
- **通用方法**:手动创建仓库配置文件(/etc/yum.repos.d/mysql.repo)
发行版 | 仓库配置方式 | 默认版本 |
---|---|---|
Ubuntu 20.04 | APT专用包+图形配置 | MySQL 8.0 |
CentOS 7 | RPM导入密钥+YUM仓库 | MySQL 8.0 |
Debian 11 | APT源+GPG密钥 | MySQL 8.0 |
三、安装依赖组件
MySQL运行依赖libaio、libnuma等库,需提前安装。
- **通用依赖**:
sudo apt install libaio1 libmecab2 # Ubuntu/Debian sudo yum install libaio # CentOS/RHEL
- **编译环境依赖**(如需源码安装):
sudo yum groupinstall "Development Tools" sudo apt install build-essential
组件 | 作用 | 缺失影响 |
---|---|---|
libaio | 异步I/O支持 | 性能下降 |
libnuma | 内存分配优化 | 高并发场景异常 |
zlib/gcc | 压缩/编译支持 | 插件加载失败 |
四、执行安装命令
根据仓库配置选择对应安装指令,注意版本号参数。
- **二进制安装**:
sudo apt install mysql-server # Ubuntu/Debian sudo yum install mysql-community-server # CentOS/RHEL
- **源码编译安装**:
tar -xvf mysql-8.0.30.tar.gz cd mysql-8.0.30 && cmake . -DDOWNLOAD_BOOST=1 -DWITH_BOOST=../boost make && sudo make install
安装方式 | 优势 | 适用场景 |
---|---|---|
二进制包 | 快速部署 | 生产环境 |
源码编译 | 定制优化 | 开发测试 |
Docker镜像 | 环境隔离 | 多项目并行 |
五、初始化数据库文件
首次安装后需进行初始化操作,生成默认配置文件和数据目录。
- **自动初始化**:
sudo systemctl start mysqld # CentOS/RHEL sudo systemctl start mysql # Ubuntu/Debian
- **手动初始化**(源码安装时):
mkdir /usr/local/mysql cp support-files/my-default.cnf /etc/my.cnf /usr/local/mysql/bin/mysqld --initialize --user=mysql
初始化方式 | 数据目录 | 日志路径 |
---|---|---|
系统服务启动 | /var/lib/mysql | /var/log/mysql |
源码编译安装 | /usr/local/mysql/data | /usr/local/mysql/logs |
Docker部署 | /var/lib/mysql | /var/log/mysql |
六、安全配置与权限设置
默认root账户无密码且匿名用户可登录,需立即修改。
- 运行安全脚本:
sudo mysql_secure_installation
按提示完成以下操作: - 设置root密码 - 删除匿名用户 - 禁止远程root登录 - 移除测试数据库 - 手动修改配置文件(/etc/my.cnf):
[mysqld] bind-address = 127.0.0.1 # 仅允许本地连接 skip-symbolic-links # 禁用软链接绕过权限
安全项 | 配置方法 | 风险等级 |
---|---|---|
root密码 | mysql_secure_installation | 高 |
匿名用户 | DELETE FROM mysql.user WHERE User='' | 中 |
远程访问 | GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' | 低 |
七、服务管理与自动化配置
配置系统服务自启并设置开机启动项。
- **启用自启**:
sudo systemctl enable mysqld # CentOS/RHEL sudo systemctl enable mysql # Ubuntu/Debian
- **查看服务状态**:
systemctl status mysqld | grep Active
- **日志监控**:配置/etc/rsyslog.conf追加:
local0.* /var/log/mysql/error.log
重启rsyslog服务:sudo systemctl restart rsyslog
操作 | CentOS命令 | Ubuntu命令 |
---|---|---|
启动服务 | systemctl start mysqld | systemctl start mysql |
停止服务 | systemctl stop mysqld | systemctl stop mysql |
重启服务 | systemctl restart mysqld | systemctl restart mysql |
八、验证安装与功能测试
通过客户端工具验证MySQL是否正常运行。
- 登录数据库:
mysql -u root -p
输入密码后执行:SHOW VARIABLES LIKE 'version';
- 创建测试数据库:
CREATE DATABASE test_db; USE test_db; CREATE TABLE t1 (id INT PRIMARY KEY);
- 远程连接测试(需开放防火墙):
sudo firewall-cmd --permanent --add-port=3306/tcp # CentOS sudo ufw allow 3306 # Ubuntu
测试项 | 命令/操作 | 预期结果 |
---|---|---|
版本查询 | SELECT VERSION(); | 返回8.0.x或指定版本号 |
连接数限制 | SHOW VARIABLES LIKE 'max_connections'; | 默认151(可调整) |
字符集验证 | SHOW VARIABLES LIKE 'character_set%'; | utf8mb4(需配置) |
通过以上八个步骤,可在主流Linux发行版中完成MySQL的命令行安装。不同平台的核心差异体现在包管理和服务命名上,而安全配置与初始化逻辑具有通用性。实际部署时需根据业务需求调整配置文件参数,并定期执行升级和维护操作。
发表评论