华为云服务器装数据库远程连接被拒绝

在华为云服务器上安装MariaDB并允许远程访问后,通过Navicat无法连接。检查发现3306端口绑定于127.0.0.1,修改配置文件取消bind-address注释,重启服务后成功实现远程连接。

在华为云服务器上装了 MariaDB,并且为用户授予了远程连接的权限,查看用户信息如下,Host 为 % 是可以远程连接的:

MariaDB [(none)]> SELECT User, Host FROM mysql.user;
+----------+-----------+
| User     | Host      |
+----------+-----------+
| codepeak | %         |
| root     | %         |
| codepeak | localhost |
| root     | localhost |
+----------+-----------+
4 rows in set (0.000 sec)

用户添加后,进行了权限刷新,flush privileges; 而且还重启了数据库服务。

但使用数据库可视化工具 Navicat 连不上,然后就想到了云服务器端口是否开放。
进入自己的云服务器控制台,点击云服务器实例,找到安全组,然后在你当前使用的安全组中点击配置规则,编辑入方向规则和出方向规则,将数据库端口加一下(默认为3306),然后继续尝试连接。

发现 Navicat 依旧连不上,还是一样被拒绝,又查了查 3306 端口的占用情况:

CodePeak@ubuntu-20-04-server:~$ netstat -an | grep 3306
tcp       0      0 127.0.0.1:3306                 0.0.0.0:*                    LISTEN

看到 3306 端口绑定的 IP 是 127.0.0.1,我似乎知道了问题所在,需要修改一下 MySQL 服务的配置文件:

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address = 127.0.0.1 注释掉即可:

#bind-address            = 127.0.0.1

工作太忙并且很长时间没配数据库了,遇到个小问题还花费了点时间,记录一下~

<think>好的,我现在需要帮助用户了解如何在华为云服务器上搭建网站并连接数据库。用户提到了参考的四个引用,我需要仔细查看这些引用内容,看看里面有没有相关的步骤者信息可以利用。 首先,引用[1]提到了在华为云服务器上安MySQL数据库的过程,包括使用`sudo apt install mysql-server`和进行安全设置。这可能涉及到数据库的安和配置,这部分对用户的问题很重要,因为连接数据库需要数据库服务已经正确。 引用[3]和[4]都涉及到在华为云服务器上搭建网站,特别是使用Vue、Node.js和MySQL的组合。引用[3]还提到部署网站到云服务器,并可能涉及到如何连接数据库。用户的问题正好是搭建网站并连接数据库,所以这部分应该是关键。 接下来,我需要整理出一个步骤清晰的教程,涵盖服务器准备、网站部署和数据库连接。可能需要分为几个步骤:环境准备、数据库与配置、网站部署、连接数据库、安全组设置等。 在环境准备部分,需要确保用户已经购买了华为云ECS服务器,并配置好操作系统,比如Ubuntu。然后安必要的软件,如Node.js环境、MySQL数据库,这些在引用中都有提到。 数据库部分,引用[1]已经给出了安MySQL和安全设置的命令,这部分可以直接引用。同时,需要指导用户创建数据库和用户,并授予权限,这是连接数据库的必要步骤。 网站部署方面,引用[3]提到使用Vue和Node.js,所以可能需要将前端和后端代码部署到服务器上,并配置服务器运行Node.js应用。同时,确保后端能够连接到MySQL数据库,这涉及到修改配置文件,使用数据库的IP、端口、用户名和密码。 安全组设置是华为云服务器的重要部分,需要开放HTTP/HTTPS端口以及数据库端口(如3306),但要注意数据库端口不应该对公网开放,只能内网访问,这部分可能需要提醒用户。 在连接数据库的部分,需要示例代码,比如Node.js中使用mysql2模块连接数据库,这里要确保代码中的host设置为localhost者127.0.0.1,因为数据库和网站在同一台服务器上。同时,使用环境变量来保存敏感信息,如密码,这也是需要注意的安全点。 最后,测试部分需要用户检查网站是否正常运行,并且能够正确读写数据库。可能还需要提到HTTPS配置和备份策略,这些都是实际部署中需要考虑的。 整个过程中,需要确保每一步都清晰,并且符合用户提供的引用内容中的方法。同时,注意使用正确的格式,比如行内公式用$...$,代码块用三个反引号包裹,问题部分列出相关问题。</think>### 华为云服务器搭建网站并连接数据库教程 #### 一、服务器环境准备 1. **购买并登录华为云ECS服务器** 选择Ubuntu/CentOS系统,通过SSH连接服务器: ```bash ssh root@服务器公网IP ``` 参考华为云制台提供的密钥密码登录方式[^4]。 2. **安必要组件** ```bash sudo apt update sudo apt install nginx nodejs npm # 部署前端(如Vue)和后端(如Node.js) sudo apt install mysql-server # 安MySQL数据库[^1] ``` --- #### 二、数据库配置 1. **初始化MySQL安全设置** ```bash sudo mysql_secure_installation ``` 按提示设置root密码、移除匿名用户、禁止远程root登录等[^1]。 2. **创建数据库与用户** 登录MySQL并执行: ```sql CREATE DATABASE website_db; CREATE USER 'web_user'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON website_db.* TO 'web_user'@'localhost'; FLUSH PRIVILEGES; ``` --- #### 三、网站部署 1. **部署前端代码(以Vue为例)** - 将打包后的`dist`目录上传至服务器(如`/var/www/html`) - 配置Nginx指向静态文件: ```nginx server { listen 80; server_name your_domain.com; root /var/www/html/dist; index index.html; } ``` 2. **部署后端代码(以Node.js为例)** - 上传Node.js项目文件至服务器(如`/opt/webapp`) - 安依赖并启动服务: ```bash npm install pm2 start app.js # 使用PM2管理进程 ``` --- #### 四、连接数据库(Node.js示例) 1. **配置数据库连接** 在Node.js项目中修改数据库配置文件(如`config.js`): ```javascript module.exports = { host: 'localhost', user: 'web_user', password: 'your_password', database: 'website_db', port: 3306 } ``` 2. **使用mysql2模块操作数据库** ```javascript const mysql = require('mysql2/promise'); async function query(sql) { const connection = await mysql.createConnection(config); const [results] = await connection.execute(sql); return results; } ``` --- #### 五、安全组设置(关键步骤) 1. 在华为云制台开放端口: - **HTTP(80)/HTTPS(443)**:允许公网访问网站 - **SSH(22)**:限制为信任IP - **MySQL(3306)**:仅允许内网访问(若需远程管理,建议使用SSH隧道)[^1] --- #### 六、验证与测试 1. 访问`http://服务器公网IP`检查网站是否正常加载 2. 通过Node.js接口执行数据库读写测试 3. 使用命令监MySQL连接状态: ```bash sudo mysql -u web_user -p -e "SHOW STATUS LIKE 'Threads_connected'" ``` --- ### 注意事项 1. **数据库安全** - 避免在代码中明文存储密码,建议使用环境变量[^3] - 定期通过`mysqldump`备份数据库 2. **HTTPS配置** 通过Let's Encrypt申免费SSL证书,增强网站安全性[^4]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code_peak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值