【实操整合】将node.js后端代码(链接mysql)部署到服务器(ubantu20.04)中

首先,下载Xshell和Xftp,连接上实验室服务器

【科研小白系列】如何远程连接实验室服务器跑代码?|Xshell和Xftp_xshell连接服务器后怎么跑代码-优快云博客

服务器使用的都是linux命令行操作,老师的服务器系统是ubantu20.04,

我先后在服务器中下载了mysql8.0,然后下载nodejs创建服务器文件,把代码部署上去(上篇文章:node.js启动Express/Http 服务器连接)

其中下载nodejs遇到了一些小问题

官网:

Node.js — 在任何地方运行 JavaScript

# Download and install nvm:
curl -o- <https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh> | bash

# in lieu of restarting the shell
\\. "$HOME/.nvm/nvm.sh"

# Download and install Node.js:
nvm install 18

# Verify the Node.js version:
node -v # Should print "v18.20.8".
nvm current # Should print "v18.20.8".

# Verify npm version:
npm -v # Should print "10.8.2".

//这是我下载的版本,不同版本可以自行去官网查询下载命令

彻底解决【“curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused”】错误_curl: (7) failed to connect to nodejs.org port 443-优快云博客

然后我发现连第一个命令都用不了,解决方案如上👆

就是可以用了,但是好慢,换源!

直接使用国内镜像(推荐)

由于 GitHub 访问不稳定,可以用以下镜像源:

(1) Gitee 镜像(国内稳定)

bash

复制

curl -o- <https://gitee.com/mirrors/nvm/raw/v0.40.2/install.sh> | bash

(2) FastGit 镜像

bash

复制

curl -o- <https://raw.fastgit.org/nvm-sh/nvm/v0.40.2/install.sh> | bash

(3) jsDelivr CDN

bash

复制

curl -o- <https://cdn.jsdelivr.net/gh/nvm-sh/nvm@v0.40.2/install.sh> | bash

好不容易安上了,我发现要在nodejs中写代码好不方便,于是使用vscode连接服务器

https://blog.youkuaiyun.com/qq_62464995/article/details/131029280?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522a70ab3d0c62aa52578282ecf364d0741%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=a70ab3d0c62aa52578282ecf364d0741&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-131029280-null-null.142^v102^pc_search_result_base2&utm_term=vscode连接ssh远程服务器&spm=1018.2226.3001.4187

首先,下载Xshell和Xftp,连接上实验室服务器

【科研小白系列】如何远程连接实验室服务器跑代码?|Xshell和Xftp_xshell连接服务器后怎么跑代码-优快云博客

服务器使用的都是linux命令行操作,老师的服务器系统是ubantu20.04,

我先后在服务器中下载了mysql8.0,然后下载nodejs创建服务器文件,把代码部署上去(上篇文章:node.js启动Express/Http 服务器连接)

其中下载nodejs遇到了一些小问题

官网:

Node.js — 在任何地方运行 JavaScript

# Download and install nvm:
curl -o- <https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh> | bash

# in lieu of restarting the shell
\\. "$HOME/.nvm/nvm.sh"

# Download and install Node.js:
nvm install 18

# Verify the Node.js version:
node -v # Should print "v18.20.8".
nvm current # Should print "v18.20.8".

# Verify npm version:
npm -v # Should print "10.8.2".

//这是我下载的版本,不同版本可以自行去官网查询下载命令

彻底解决【“curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused”】错误_curl: (7) failed to connect to nodejs.org port 443-优快云博客

然后我发现连第一个命令都用不了,解决方案如上👆

就是可以用了,但是好慢,换源!

直接使用国内镜像(推荐)

由于 GitHub 访问不稳定,可以用以下镜像源:

(1) Gitee 镜像(国内稳定)

curl -o- <https://gitee.com/mirrors/nvm/raw/v0.40.2/install.sh> | bash

(2) FastGit 镜像

curl -o- <https://raw.fastgit.org/nvm-sh/nvm/v0.40.2/install.sh> | bash

(3) jsDelivr CDN

curl -o- <https://cdn.jsdelivr.net/gh/nvm-sh/nvm@v0.40.2/install.sh> | bash

好不容易安上了,我发现要在nodejs中写代码好不方便,于是使用vscode连接服务器

https://blog.youkuaiyun.com/qq_62464995/article/details/131029280?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522a70ab3d0c62aa52578282ecf364d0741%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=a70ab3d0c62aa52578282ecf364d0741&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-131029280-null-null.142^v102^pc_search_result_base2&utm_term=vscode连接ssh远程服务器&spm=1018.2226.3001.4187

这样子就方便了。

最后一系列数据插入mysql最终成功了。


mysql库身份认证问题(使用mysql2库可以忽略)

Node.js 应用程序使用的 MySQL 客户端库(mysql 模块)与 MySQL 8.0+ 服务器的认证协议不兼容。以下是完整的解决方案:


问题原因

MySQL 8.0+ 默认使用 caching_sha2_password 认证插件,但较旧的 mysql npm 模块不支持该协议。

解决:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

MySQL 8.0引入了一个新的身份验证插件,名为caching_sha2_password。这个插件取代了之前版本中默认的mysql_native_password插件,成为MySQL 8.0及更高版本中的默认身份验证插件。caching_sha2_password使用SHA-256算法对密码进行哈希,并支持将哈希值缓存到服务器内存中,以提高验证效率。 由于我用的还是mysql库所以身份认真方式得更改。


可能有些地方没有说的很详细(引用部分),此文章主要是资源和步骤总结,如果您在实操过程中具体哪里失败了可以评论讨论,我完善完善。

这样子就方便了。

最后一系列数据插入mysql最终成功了。


mysql库身份认证问题(使用mysql2库可以忽略)

Node.js 应用程序使用的 MySQL 客户端库(mysql 模块)与 MySQL 8.0+ 服务器的认证协议不兼容。以下是完整的解决方案:


问题原因

MySQL 8.0+ 默认使用 caching_sha2_password 认证插件,但较旧的 mysql npm 模块不支持该协议。

解决:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

MySQL 8.0引入了一个新的身份验证插件,名为caching_sha2_password。这个插件取代了之前版本中默认的mysql_native_password插件,成为MySQL 8.0及更高版本中的默认身份验证插件。caching_sha2_password使用SHA-256算法对密码进行哈希,并支持将哈希值缓存到服务器内存中,以提高验证效率。 由于我用的还是mysql库所以身份认真方式得更改。


可能有些地方没有说的很详细(引用部分),此文章主要是资源和步骤总结,如果您在实操过程中具体哪里失败了可以评论讨论,我完善完善。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值