在腾讯云轻量应用服务器(Lighthouse)上连接云数据库 MySQL(通常指 TencentDB for MySQL),需要确保网络互通、权限配置正确,并使用正确的连接参数。以下是详细步骤和常见问题的解决方案:
✅ 一、前提条件
- 轻量服务器与云数据库 MySQL 在同一地域(如北京、上海等)。
- 云数据库 MySQL 已创建并运行正常。
- 轻量服务器已安装 MySQL 客户端或支持连接的程序(如 PHP、Python、Node.js 等)。
- 安全组/防火墙规则允许通信。
✅ 二、获取云数据库 MySQL 连接信息
登录 腾讯云控制台 → 进入 云数据库 MySQL 实例 → 查看以下信息:
- 内网地址(推荐用于同地域轻量服务器)
- 端口号(默认 3306)
- 用户名 & 密码
- 实例 ID / 白名单设置
⚠️ 注意:如果使用X_X地址,需开通公网访问并绑定弹性 IP;但强烈建议使用内网地址,更安全且免费。
✅ 三、配置白名单(关键步骤!)
方法1:通过控制台添加白名单
-
进入云数据库 MySQL 实例详情页 → 安全设置 → IP 白名单。
-
点击“修改”,添加轻量服务器的内网 IP 地址。
- 如何获取轻量服务器内网 IP?
curl ifconfig.me # 或 ip addr show | grep "inet " | awk '{print $2}' | cut -d'/' -f1 - 或者在腾讯云控制台 → 轻量服务器详情中查看“内网 IP”。
- 如何获取轻量服务器内网 IP?
-
保存设置。
方法2:使用 0.0.0.0/0(不推荐生产环境)
仅用于测试,会开放所有 IP 访问,存在安全风险。
✅ 四、从轻量服务器连接 MySQL
方式1:使用命令行 mysql 客户端
# 安装 mysql 客户端(以 Ubuntu/Debian 为例)
sudo apt update
sudo apt install mysql-client -y
# 连接数据库
mysql -h <内网IP> -P 3306 -u <用户名> -p
输入密码后即可进入 MySQL 命令行。
方式2:使用编程语言连接
Python 示例(使用 pymysql)
import pymysql
connection = pymysql.connect(
host='<内网IP>',
port=3306,
user='<用户名>',
password='<密码>',
database='<数据库名>'
)
try:
with connection.cursor() as cursor:
sql = "SELECT VERSION()"
cursor.execute(sql)
result = cursor.fetchone()
print(f"MySQL Version: {result}")
finally:
connection.close()
PHP 示例(PDO)
<?php
$host = '<内网IP>';
$dbname = '<数据库名>';
$user = '<用户名>';
$pass = '<密码>';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
echo "Connected successfully!";
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
✅ 五、常见问题排查
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
Can't connect to MySQL server |
白名单未添加、防火墙阻止、服务未启动 | 检查白名单、轻量服务器防火墙、MySQL 是否运行 |
Access denied for user |
用户名/密码错误、用户无远程访问权限 | 确认账号密码,或在 MySQL 中授权用户:GRANT ALL ON *.* TO 'user'@'%' IDENTIFIED BY 'password'; |
Timeout |
网络不通、端口未开放 | 使用 telnet <IP> 3306 测试连通性,检查安全组 |
| 轻量服务器无法解析内网域名 | DNS 配置问题 | 直接使用 IP 地址而非域名 |
✅ 六、最佳实践建议
- 始终使用内网 IP 连接,避免暴露公网。
- 定期更新密码,使用强密码。
- 最小权限原则:为应用创建专用数据库用户,仅授予必要权限。
- 启用 SSL/TLS 加密(如果支持),提升安全性。
- 监控连接数和慢查询,优化性能。
🔗 参考链接
- 腾讯云轻量应用服务器文档
- 云数据库 MySQL 白名单设置
- MySQL 官方连接指南
如有具体报错信息,欢迎提供,我可以帮你进一步诊断!
轻量云Cloud