关于 云服务器 搭建 数据库 的步骤

本文介绍了如何在MySQL中修改root用户的访问权限,通过将host字段由'localhost'更改为'%'来允许从任意主机访问。同时,针对新版本MySQL在安装后遇到的认证协议错误提供了解决方案,并给出了设置或更改MySQL用户密码的三种方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

localhost改成%

进入mysql的BIN目录(打开mysql文件夹,按住shift + 鼠标右键,以命令方式打开)

 代码如下:

mysql -u root -p
mysql>use mysql;
mysql>update user set host ='%' where user ='root';
mysql>flush privileges;

具体分析:
1、在本机登入mysql后,更改“mysql”数据库里的“user”表里的“host”项,从”localhost”改为'%'。

    代码如下

mysql>
mysql>use mysql;
mysql>select 'host' from user where user='root';   

#查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)


 代码如下:

mysql>update user set host = '%' where user ='root';

#修改host值(以通配符%的内容增加主机/IP地址,当然也可以直接增加某个特定IP地址,如果执行update语句时出现ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' 错误,需要select host from user where user = 'root';
查看一下host是否已经有了%这个值,如果有了直接执行下面的flush privileges;即可)


 代码如下:

mysql>flush privileges;
mysql>select host,user from user where user='root';
mysql>quit;

安装好mysql后修改密码发生:#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client 错误。
原因:
升级客户端 
新版本的mysql使用了新的密码验证方法 
设置mysql密码时使用old_password可以解决这个问题
 解决方法如下:

方法一:

mysql> SET PASSWORD FOR
         -> 'some_user'@'some_host' = OLD_PASSWORD('新密码');

方法二:

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('新密码')
        -> WHERE Host = 'some_host' AND User = 'some_user';

mysql> FLUSH PRIVILEGES;

注:
some_user:表示当前出错的用户ID,例如:root;
some_host:表示当前主机,例如:localhost;
Mysql Docker下载地址
docker pull hub.c.163.com/library/mysql:latest 
启动数据库
docker run -i -t -d -p 3306:3306 -p 8080:80 d5127813070b /bin/bash

mysql应用在/var/lib/mysql下

mysql -u root -p
mysql> use mysql; 
mysql> update user set password=password('123') where user='root' and host='localhost'; 
mysql> flush privileges; 
update user set host ='%'where user ='root';

方法1: 用SET PASSWORD命令 

首先登录MySQL。 
格式:mysql> set password for 用户名@localhost = password('新密码'); 
例子:mysql> set password for root@localhost = password('123'); 

方法2:用mysqladmin 
格式:mysqladmin -u用户名 -p旧密码 password 新密码 
例子:mysqladmin -uroot -p123456 password 123 


方法3:用UPDATE直接编辑user表 

首先登录MySQL。 

mysql> use mysql; 
mysql> update user set password=password('123') where user='root' and host='localhost'; 
mysql> flush privileges; 



<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]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值