linux下mysql部署有四种主流方式:ubuntu/debian用apt、centos/rhel 8+用dnf加官方yum源、离线rpm包按序安装、二进制免编译包定制部署;均需配置mysql用户权限、/etc/my.cnf中设basedir/datadir/character_set_server=utf8mb4,并完成安全初始化与远程访问授权。

Linux 下部署 MySQL,关键在选对方法、配好权限、设准字符集。不同发行版和网络条件对应不同安装路径,初始化配置则直接影响后续连接与中文支持。
根据系统选安装方式
Ubuntu/Debian 用户优先用 APT:
- 更新源并安装:sudo apt update && sudo apt install mysql-server
- 启动服务:sudo systemctl start mysql && sudo systemctl enable mysql
- 运行安全脚本:sudo mysql_secure_installation(会引导设置 root 密码、删匿名用户、禁远程 root)
CentOS/RHEL 8+ 推荐官方 YUM 源:
- 导入仓库:sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
- 安装服务:sudo dnf install mysql-community-server
- 启动并查初始密码:sudo systemctl start mysqld && sudo grep 'temporary password' /var/log/mysqld.log
无外网或需指定版本时,用离线 RPM 包(注意安装顺序):
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 依次安装 common → libs → client → server 四个包
- 初始化数据目录:mysqld --initialize --user=mysql --datadir=/var/lib/mysql
- 启动前确保 /var/lib/mysql 权限为 mysql:mysql
二进制包安装(适合定制化部署)
适用于需要控制安装路径、数据目录或规避包管理器限制的场景:
- 解压到 /usr/local/mysql,创建 mysql 用户组:groupadd mysql && useradd -r -g mysql mysql
- 授权目录:chown -R mysql:mysql /usr/local/mysql /data/mysql
- 配置 /etc/my.cnf,至少包含:
basedir=/usr/local/mysql
datadir=/data/mysql
character_set_server=utf8mb4
default_authentication_plugin=mysql_native_password(兼容旧客户端) - 初始化:/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
首次登录与基础安全配置
安装后必须完成这几步,否则无法正常使用或存在风险:
- 用临时密码登录(Ubuntu 查 /etc/mysql/debian.cnf;CentOS 查 /var/log/mysqld.log)
- 立即修改 root 密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '强密码'; - 如需远程访问,创建新用户并授权:
CREATE USER 'admin'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES; - 检查防火墙是否放行 3306 端口(生产环境建议仅允许可信 IP)
字符集与连接兼容性设置
中文乱码、老程序连不上,多数因字符集或认证插件不匹配:
- 确认服务器默认字符集:show variables like 'character_set_server'; 应为 utf8mb4
- 客户端连接时显式指定:mysql -u root -p --default-character-set=utf8mb4
- 若 Python/PHP 等旧应用报错“caching_sha2_password”,在用户创建时指定插件:
CREATE USER 'appuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pwd'; - my.cnf 中 [client] 和 [mysql] 段也应配置 default-character-set=utf8mb4










