检查数据库是否挂掉

发布时间:2026/6/12 4:06:46
检查数据库是否挂掉 既然数据库和应用都部署在同一台服务器上使用localhost作为连接地址在逻辑上是完全正确的。但是结合你之前遇到的hikariCP - Connection is not available, request timed out after 30000ms报错问题通常出在环境差异或配置细节上。请按照以下 4 个步骤逐一排查1. 确认 MySQL 服务是否真的在运行最常见原因打包部署到服务器后MySQL 不会像本地 IDEA 那样自动启动。你需要登录到服务器47.97.59.142上检查Linux 系统在终端执行systemctl status mysql或service mysql status。如果没有运行请执行systemctl start mysql启动它。Windows 系统打开“服务”services.msc找到MySQL80或类似名称确保状态是“正在运行”。2. 检查数据库名称是否完全匹配你提供的 URL 中数据库名是newbee_mall_db。请确认你在服务器上创建的数据库名字一字不差地叫newbee_mall_db。如果服务器上叫newbee_mall而没有_db后缀连接就会失败。3. 检查时区配置推荐优化虽然你配置了serverTimezoneAsia/Shanghai但在某些 Linux 服务器环境下JDBC 驱动可能无法正确解析这个时区字符串导致连接挂起超时。建议修改将serverTimezoneAsia/Shanghai替换为serverTimezoneGMT%2B8。修改后的完整 URL 建议如下spring.datasource.urljdbc:mysql://localhost:3306/newbee_mall_db?useUnicodetruecharacterEncodingutf8serverTimezoneGMT%2B8useSSLfalseallowPublicKeyRetrievaltrueallowMultiQueriestrue(注这里加上了allowPublicKeyRetrievaltrue可以防止之前遇到过的 MySQL 8 认证问题)4. 检查 MySQL 用户权限Host 限制即使数据库在本地如果你的 MySQL 用户只允许localhost访问而 Java 应用是通过 IPv6 或其他回环地址连接的也可能被拒绝。登录服务器的 MySQL执行以下命令检查并授权-- 查看 root 用户的 host 权限 SELECT host, user FROM mysql.user WHERE user root; -- 如果只有 localhost建议授权允许所有 IP包括 127.0.0.1 CREATE USER root% IDENTIFIED BY 你的密码; GRANT ALL PRIVILEGES ON *.* TO root%; FLUSH PRIVILEGES; 快速定位建议先登录服务器执行telnet localhost 3306。如果提示Connected说明数据库正常问题出在配置账号密码/数据库名/时区。如果提示Connection refused说明数据库根本没启动或者端口不对。