在轻量云服务器(https://cloud.tencent.com/product/lighthouse?Is=sdk-topnav)上连接自身的 MySQL 数据库,通常有两种场景:
以下是针对这两种场景的详细步骤和配置指南:
如果应用程序和数据库在同一台机器,不要使用 127.0.0.1 或 localhost 的 TCP 连接,而应使用 Unix Socket。这能绕过 TCP/IP 协议栈,速度更快且更安全。
sudo systemctl status mysql
# 或者如果是 MariaDB
sudo systemctl status mariadb默认情况下,Socket 文件位于 /var/run/mysqld/mysqld.sock。你可以用以下命令确认:
mysql -u root -p -e "SHOW VARIABLES LIKE 'socket';"💡 提示:如果必须用 TCP 连接(如某些框架限制),使用
127.0.0.1而不是localhost。因为在 Linux 中,localhost默认尝试 Socket,而127.0.0.1强制使用 TCP。
如果你想在本地电脑上管理服务器上的 MySQL,需要完成以下三步:授权用户 -> 开放防火墙 -> 安全组放行。
登录 MySQL:
mysql -u root -p执行 SQL 语句(以创建一个名为 remote_user 的用户为例):
-- 1. 创建用户并设置密码(% 表示允许任何 IP 连接)
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'YourStrongPassword';
-- 2. 授予权限(根据需求调整库名)
GRANT ALL PRIVILEGES ON mydb.* TO 'remote_user'@'%';
-- 3. 刷新权限
FLUSH PRIVILEGES;
EXIT;编辑 MySQL 配置文件(Ubuntu/Debian 通常在 /etc/mysql/mysql.conf.d/mysqld.cnf,CentOS 在 /etc/my.cnf 或 /etc/my.cnf.d/server.cnf):
[mysqld]
# 找到 bind-address 这一行
# 将其改为 0.0.0.0 表示监听所有接口
bind-address = 0.0.0.0重启 MySQL 服务:
sudo systemctl restart mysql轻量云厂商(阿里云、腾讯云、华为云等)默认拦截外部对 3306 端口的访问。
33060.0.0.0/0(允许所有人,不推荐生产环境)。在你的本地电脑终端或 Navicat 中:
3306remote_userYourStrongPasswordroot 用户进行远程连接。SELECT, INSERT, UPDATE),避免 DROP 或 GRANT 权限。127.0.0.1:3307,这样即使 3306 端口未对外公开,也能安全连接。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。