Linux配置MySQL需四步:安装、安全初始化、开放远程访问、验证调优;重点是临时密码获取、bind-address设为0.0.0.0、创建专用用户、字符集设为utf8mb4并放行防火墙3306端口。

Linux 服务器上配置 MySQL 数据库服务,核心是“装得稳、启得动、连得上、用得安”。重点不在安装本身,而在初始化后的权限、字符集、远程访问和基础安全设置。下面分四步讲清楚关键操作。
确认安装方式并完成基础安装
先看你的发行版:
-
Ubuntu/Debian:直接运行
sudo apt update && sudo apt install mysql-server,服务会自动启动 -
CentOS/RHEL 8+:推荐用官方源(避免系统自带的旧版或 MariaDB),执行:
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el8-4.noarch.rpmsudo dnf install mysql-community-server - 装完检查状态:
systemctl status mysqld(CentOS)或systemctl status mysql(Ubuntu)
首次启动与安全初始化
MySQL 8.0 启动后会生成一个临时 root 密码,必须立刻使用:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 查临时密码:
sudo grep 'temporary password' /var/log/mysqld.log(CentOS)或sudo cat /etc/mysql/debian.cnf(Ubuntu 查 debian-sys-maint 密码,root 密码在日志里) - 登录:
mysql -u root -p,粘贴临时密码 - 立即改密码(8.0 默认启用强密码策略):
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPass123!'; - 运行安全脚本:
sudo mysql_secure_installation,按提示关闭匿名用户、禁用 root 远程登录、删 test 库
开放远程访问(如需)
默认只允许本地连接。若要从其他机器访问,不能只开 3306 端口,还要配用户权限:
- 编辑 MySQL 配置文件:
/etc/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf - 找到
[mysqld]段,确保有:bind-address = 0.0.0.0(监听所有网卡)character-set-server = utf8mb4(支持完整中文和 emoji) - 重启服务:
sudo systemctl restart mysqld(或mysql) - 创建专用远程用户(不建议直接放开 root):
CREATE USER 'admin'@'%' IDENTIFIED BY 'StrongPass456!';GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;FLUSH PRIVILEGES;
验证连接与基础调优
配置完成后,务必验证是否真正可用:
- 本地测试:
mysql -u admin -p -h 127.0.0.1 - 远程测试(从另一台机器):
mysql -u admin -p -h 你的服务器IP - 检查字符集:
SHOW VARIABLES LIKE 'character_set%';,确保character_set_server和collation_server是utf8mb4 - 简单调优(开发/测试环境够用):
在[mysqld]下加:innodb_buffer_pool_size = 512M(内存一半以内)max_connections = 200log_error = /var/log/mysql/error.log
配置完成之后,记得防火墙放行 3306(如 sudo ufw allow 3306 或 sudo firewall-cmd --add-port=3306/tcp --permanent),再 reload。整个过程不复杂但容易忽略细节,尤其临时密码和 bind-address 这两项,错一个就连不上。

















