mysql在Linux系统上安装步骤_mysql部署实战解析

来源:这里教程网 时间:2026-02-28 20:52:50 作者:

如何确认 Linux 系统已安装 MySQL 或 MariaDB

很多用户直接运行

mysql --version
却得到
command not found
,其实是因为系统可能预装了
mariadb
(尤其 CentOS 8+/AlmaLinux/RHEL 8+),而它和 MySQL 不完全兼容。先执行:
which mysql
rpm -qa | grep -i mysql
(RPM 系统)或
dpkg -l | grep -i mysql
(Debian/Ubuntu)。若返回空,说明未安装;若看到
mariadb-libs
mariadb-server
,要特别注意后续是否需卸载冲突包。

使用官方 APT/YUM 源安装 MySQL 8.0(推荐方式)

不建议用系统默认源(如 Ubuntu 的

apt install mysql-server
安装的是 MariaDB;CentOS 8+ 默认无 MySQL 包)。应添加 MySQL 官方仓库:

Ubuntu/Debian:下载
mysql-apt-config_*.deb
,用
sudo dpkg -i
安装后会自动配置源,再
sudo apt update && sudo apt install mysql-server
RHEL/CentOS/AlmaLinux:下载
mysql80-community-release-*.rpm
,执行
sudo rpm -Uvh
,然后启用 8.0 仓库:
sudo yum-config-manager --enable mysql80-community
(RHEL 8+ 用
dnf
),最后
sudo dnf install mysql-community-server
关键点:安装后服务名是
mysqld
(不是
mysql
),启动命令为
sudo systemctl start mysqld

首次启动后必须执行
mysql_secure_installation

MySQL 8.0 默认生成临时 root 密码,存于

/var/log/mysqld.log
中,用
sudo grep 'temporary password' /var/log/mysqld.log
提取。但仅改密码不够——
mysql_secure_installation
会强制处理几个关键风险:

移除匿名用户(
root@localhost
以外的空用户名)
禁用远程 root 登录(只保留
root@localhost
删除
test
数据库及关联权限
重载权限表(
FLUSH PRIVILEGES
注意:该脚本不修改默认认证插件,MySQL 8.0 默认用
caching_sha2_password
,旧客户端连接会报
Authentication plugin 'caching_sha2_password' cannot be loaded
,需在创建用户时显式指定
mysql_native_password

验证端口、防火墙与 socket 连接是否就绪

常见“连不上”问题往往卡在底层通信层:

检查 MySQL 是否监听
3306
sudo ss -tlnp | grep :3306
(输出应含
mysqld
进程)
若需远程访问,确保
bind-address
/etc/my.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf
中设为
0.0.0.0
(或注释掉该行),且重启服务
开放防火墙:
sudo ufw allow 3306
(Ubuntu)或
sudo firewall-cmd --permanent --add-port=3306/tcp
(RHEL/CentOS)
本地 socket 连接失败?检查
socket
路径是否一致:
mysql --socket=/var/lib/mysql/mysql.sock -u root -p
,路径以
mysqld --verbose --help | grep socket
输出为准

配置文件加载顺序、SELinux 策略、AppArmor 限制都可能静默拦截连接,遇到异常先查

journalctl -u mysqld -n 50 --no-pager

相关推荐