目录

22.问题汇总持续更新

学习过程中问题汇总

数据库相关

问题 1

ER_NOT_SUPPORTED_AUTH_MODE 错误解决。

最新的 mysql 模块并未完全支持 MySQL 8 的“caching_sha2_password” 加密方式,而“caching_sha2_password”在 MySQL 8 中是默认的加密方式。因此,下面的方式命令是默认已经使用了“caching_sha2_password”加密方式,该账号、密码无法在mysql模块中使用。

简单说就是目前 MySQL 8.0 以上的版本的加密方式,Node 还不支持。

解决方法:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

上述指令需启动 mysql 的情况下执行。

问题 2

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e0dce273995f4e6e80c2337b56be5bb9~tplv-k3u1fbpfcp-zoom-1.image

上述提示多半是端口被占用了,建议修改 egg 启动的端口号,在 config/config.default.js 中,如下:

config.cluster = {
  listen: {
    path: '',
    port: 7009, // 项目启动的端口号
    hostname: '0.0.0.0'
  }
}

问题 3

服务器安装社群版 mysql 报错说没有任何匹配?

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/410f8ab3edef4afab11477bb0b71592e~tplv-k3u1fbpfcp-zoom-1.image

解决方案

安装前要先禁用 mysql,先跑一下后面这个指令 sudo yum module disable mysql

网站相关

问题 1

网站部署到服务器上之后,通过 IP 地址,无法访问到,咋整?

解决方案

前往服务器实例,安全组,将你所部署的端口加入安全组,具体操作可自行搜索。

问题 2

部署上线之后跨域该如何解决?

解决方案

服务端项目下,通过 egg-cors 插件解决,具体配置如下图:

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a611259f2b93452b85d69e3d8d1a1383~tplv-k3u1fbpfcp-zoom-1.image

问题 3

部署到线上环境后,遇到如下图的报错:

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b905189e71cc47e785510846733c2455~tplv-k3u1fbpfcp-zoom-1.image

请将 Zarm 版本降为 2.8.2,因为高版本不兼容 React 的最新版本,这个问题官方没有很好的解决。

注意,降版本的时候,服务器内项目的 node_module 包清理一下,会有缓存。

问题 4

https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/29690202836646ab9594b7bd1166f030~tplv-k3u1fbpfcp-watermark.image? 报错:styleImport is not a function

解决办法: vite-plugin-style-import 插件作者,在后期更新的时候,将默认导出的方法变成了一个 object, 所以同学们可以尝试这样的写法:

import { default as styleImport } from 'vite-plugin-style-import'
或者
import styleImport from 'vite-plugin-style-import'
const _styleImport = styleImport.default
...
_styleImport({
    .....
})

问题 5

如果遇到"Failed to load PostCSS config",可以尝试将根目录下的 postcss.config.js 的后缀改成 .cjs结尾。