QMySQL 安装后为什么在 Linux 上还是连不上?我已经装好 MySQL 了,但在命令行里连接数据库时还是失败,这种情况一般和服务状态有关吗?
A先确认服务是否在运行
可以通过 systemctl status mysqld 或 systemctl status mysql 查看服务状态。如果没有运行,就用 systemctl start mysqld 或对应服务名启动。还要检查端口 3306 是否被占用,以及防火墙是否放行了数据库访问。
Q怎么让 MySQL 在 Linux 重启后自动可用?每次服务器重启后都要手动处理数据库服务,我想让它开机就能工作,应该怎么配置?
A开启开机自启
可以使用 systemctl enable mysqld 或 systemctl enable mysql 设置开机自启。服务名会因发行版和安装包不同而变化,执行后可用 systemctl is-enabled mysqld 再确认一次。重启系统后,MySQL 就会跟随系统一起启动。
QCentOS 和 Ubuntu 启用 MySQL 的命令一样吗?我在不同 Linux 机器上操作时,发现启动数据库的命令不完全一样,这是不是和发行版有关?
A根据服务名选择命令
是的,不同发行版安装后的服务名可能不同。CentOS 常见的是 mysqld,Ubuntu 上更常见的是 mysql。你可以先用 systemctl list-unit-files | grep mysql 或 grep mysqld 查看服务名,再执行对应的 start、enable 命令。
QMySQL 服务已经启动,为什么应用还是访问不到?我看到数据库服务状态是正常的,但网页程序或客户端还是无法连接,这种问题通常要查哪些地方?
A检查监听和访问配置
可以确认 MySQL 是否监听在 0.0.0.0 或指定内网地址,而不是只绑定在 127.0.0.1。还要检查防火墙、SELinux、数据库账号权限以及应用配置中的主机名、端口、用户名和密码是否正确。