eolinker / eoapi-remote-server

Eoapi self-hosted server
Apache License 2.0
22 stars 21 forks source link

无法连接到数据库 #3

Closed axty666 closed 2 years ago

axty666 commented 2 years ago
[Nest] 512317  - 07/23/2022, 7:57:41 PM   ERROR [TypeOrmModule] Unable to connect to the database. Retrying (9)...
QueryFailedError: Table 'api_data' already exists
    at QueryFailedError.TypeORMError [as constructor] ($path/src/error/TypeORMError.ts:7:9)
    at new QueryFailedError ($path/src/error/QueryFailedError.ts:9:9)
    at Query.onResult ($path/src/driver/mysql/MysqlQueryRunner.ts:196:37)
    at Query.execute ($path/node_modules/mysql2/lib/commands/command.js:36:14)
    at PoolConnection.handlePacket ($path/node_modules/mysql2/lib/connection.js:456:32)
    at PacketParser.onPacket ($path/node_modules/mysql2/lib/connection.js:85:12)
    at PacketParser.executeStart ($path/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> ($path/node_modules/mysql2/lib/connection.js:92:25)
    at Socket.emit (node:events:527:28)
    at addChunk (node:internal/streams/readable:315:12)
[Nest] 512317  - 07/23/2022, 7:57:41 PM   ERROR [ExceptionHandler] Table 'api_data' already exists
QueryFailedError: Table 'api_data' already exists
    at QueryFailedError.TypeORMError [as constructor] ($path/src/error/TypeORMError.ts:7:9)
    at new QueryFailedError ($path/src/error/QueryFailedError.ts:9:9)
    at Query.onResult ($path/src/driver/mysql/MysqlQueryRunner.ts:196:37)
    at Query.execute ($path/node_modules/mysql2/lib/commands/command.js:36:14)
    at PoolConnection.handlePacket ($path/node_modules/mysql2/lib/connection.js:456:32)
    at PacketParser.onPacket ($path/node_modules/mysql2/lib/connection.js:85:12)
    at PacketParser.executeStart ($path/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> ($path/node_modules/mysql2/lib/connection.js:92:25)
    at Socket.emit (node:events:527:28)
    at addChunk (node:internal/streams/readable:315:12)

yarn 与 npm 均试过,数据库尝试过删除 重建对应的数据库 已经确认不是账户密码数据库名填错 $path是文件夹名字 对应的是package.json所在的目录

axty666 commented 2 years ago

对应的config.development.ts的内容

import { ConnectionOptions } from 'typeorm';

export default {
  type: 'mysql',
  host: '127.0.0.1',
  port: 3306,
  username: 'root',
  password: '123456',
  database: 'eoapi',
  synchronize: true,
  logging: false,
  entities: ['dist/entities/**/*.js'],
  migrations: ['dist/migrations/**/*.js'],
  migrationsRun: true,
  cli: {
    migrationsDir: 'src/migrations',
  },
} as ConnectionOptions;
scarqin commented 2 years ago

@axty666 猜测是环境问题,我们最新版已经使用 docker 安装了,请按照步骤试试。 如果还有问题,@buqiyuan 小缘及时跟进

axty666 commented 2 years ago

@axty666 猜测是环境问题,我们最新版已经使用 docker 安装了,请按照步骤试试。 如果还有问题,@buqiyuan 小缘及时跟进

使用docker部署后:

eoapi-remote-server_1  | [Nest] 27  - 07/23/2022, 9:27:00 PM   ERROR [TypeOrmModule] Unable to connect to the database. Retrying (8)...
eoapi-remote-server_1  | Error: Access denied for user 'root'@'172.25.0.3' (using password: YES)
eoapi-remote-server_1  |     at Packet.asError (/eoapi-remote-server/node_modules/mysql2/lib/packets/packet.js:728:17)
eoapi-remote-server_1  |     at ClientHandshake.execute (/eoapi-remote-server/node_modules/mysql2/lib/commands/command.js:29:26)
eoapi-remote-server_1  |     at PoolConnection.handlePacket (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:456:32)
eoapi-remote-server_1  |     at PacketParser.onPacket (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:85:12)
eoapi-remote-server_1  |     at PacketParser.executeStart (/eoapi-remote-server/node_modules/mysql2/lib/packet_parser.js:75:16)
eoapi-remote-server_1  |     at Socket.<anonymous> (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:92:25)
eoapi-remote-server_1  |     at Socket.emit (node:events:527:28)
eoapi-remote-server_1  |     at addChunk (node:internal/streams/readable:315:12)
eoapi-remote-server_1  |     at readableAddChunk (node:internal/streams/readable:289:9)
eoapi-remote-server_1  |     at Socket.Readable.push (node:internal/streams/readable:228:10)
eoapi-remote-server_1  | [Nest] 20  - 07/23/2022, 9:27:00 PM   ERROR [TypeOrmModule] Unable to connect to the database. Retrying (8)...
eoapi-remote-server_1  | Error: Access denied for user 'root'@'172.25.0.3' (using password: YES)
eoapi-remote-server_1  |     at Packet.asError (/eoapi-remote-server/node_modules/mysql2/lib/packets/packet.js:728:17)
eoapi-remote-server_1  |     at ClientHandshake.execute (/eoapi-remote-server/node_modules/mysql2/lib/commands/command.js:29:26)
eoapi-remote-server_1  |     at PoolConnection.handlePacket (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:456:32)
eoapi-remote-server_1  |     at PacketParser.onPacket (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:85:12)
eoapi-remote-server_1  |     at PacketParser.executeStart (/eoapi-remote-server/node_modules/mysql2/lib/packet_parser.js:75:16)
eoapi-remote-server_1  |     at Socket.<anonymous> (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:92:25)
eoapi-remote-server_1  |     at Socket.emit (node:events:527:28)
eoapi-remote-server_1  |     at addChunk (node:internal/streams/readable:315:12)
eoapi-remote-server_1  |     at readableAddChunk (node:internal/streams/readable:289:9)
eoapi-remote-server_1  |     at Socket.Readable.push (node:internal/streams/readable:228:10)

其中的root@ip字段中的ip每一次都不一样

buqiyuan commented 2 years ago

你好,尝试将数据库字符集设置为utf8mb4_general_ci试试

buqiyuan commented 2 years ago

🤔首次使用docker-compose up -d启动就有这个问题了吗?

axty666 commented 2 years ago

image

你好,尝试将数据库字符集设置为utf8mb4_general_ci试试

axty666 commented 2 years ago

thinking首次使用docker-compose up -d启动就有这个问题了吗?

第一次的时候成功运行 但是客户端无法连接到 于是删除重新部署 然后再次使用docker-compose up -d启动的时候就是这样了 docker-compose.yaml里面的MYSQL_PASSWORDMYSQL_ROOT_PASSWORD部分第一次的时候甚至没有改为真实的密码就成功运行没有报错 再次的时候即使改为真实的密码也会报错

buqiyuan commented 2 years ago

🤔啊这样,尝试将项目根目录下的sample文件夹和之前产生的容器删掉删了重试呢

axty666 commented 2 years ago

thinking啊这样,尝试将项目根目录下的sample文件夹和之前产生的容器删掉删了重试呢

sample文件夹和Dockerfile文件吗?

axty666 commented 2 years ago

thinking啊这样,尝试将项目根目录下的sample文件夹和之前产生的容器删掉删了重试呢

sample文件夹和Dockerfile文件吗?

eoapi-remote-server_1  | [Nest] 139  - 07/23/2022, 9:57:00 PM   ERROR [TypeOrmModule] Unable to connect to the database. Retrying (7)...
eoapi-remote-server_1  | Error: Access denied for user 'root'@'172.27.0.3' (using password: YES)
eoapi-remote-server_1  |     at Packet.asError (/eoapi-remote-server/node_modules/mysql2/lib/packets/packet.js:728:17)
eoapi-remote-server_1  |     at ClientHandshake.execute (/eoapi-remote-server/node_modules/mysql2/lib/commands/command.js:29:26)
eoapi-remote-server_1  |     at PoolConnection.handlePacket (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:456:32)
eoapi-remote-server_1  |     at PacketParser.onPacket (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:85:12)
eoapi-remote-server_1  |     at PacketParser.executeStart (/eoapi-remote-server/node_modules/mysql2/lib/packet_parser.js:75:16)
eoapi-remote-server_1  |     at Socket.<anonymous> (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:92:25)
eoapi-remote-server_1  |     at Socket.emit (node:events:527:28)
eoapi-remote-server_1  |     at addChunk (node:internal/streams/readable:315:12)
eoapi-remote-server_1  |     at readableAddChunk (node:internal/streams/readable:289:9)
eoapi-remote-server_1  |     at Socket.Readable.push (node:internal/streams/readable:228:10)
eoapi-remote-server_1  | [Nest] 151  - 07/23/2022, 9:57:01 PM   ERROR [TypeOrmModule] Unable to connect to the database. Retrying (7)...
eoapi-remote-server_1  | Error: Access denied for user 'root'@'172.27.0.3' (using password: YES)
eoapi-remote-server_1  |     at Packet.asError (/eoapi-remote-server/node_modules/mysql2/lib/packets/packet.js:728:17)
eoapi-remote-server_1  |     at ClientHandshake.execute (/eoapi-remote-server/node_modules/mysql2/lib/commands/command.js:29:26)
eoapi-remote-server_1  |     at PoolConnection.handlePacket (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:456:32)
eoapi-remote-server_1  |     at PacketParser.onPacket (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:85:12)
eoapi-remote-server_1  |     at PacketParser.executeStart (/eoapi-remote-server/node_modules/mysql2/lib/packet_parser.js:75:16)
eoapi-remote-server_1  |     at Socket.<anonymous> (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:92:25)
eoapi-remote-server_1  |     at Socket.emit (node:events:527:28)
eoapi-remote-server_1  |     at addChunk (node:internal/streams/readable:315:12)
eoapi-remote-server_1  |     at readableAddChunk (node:internal/streams/readable:289:9)
eoapi-remote-server_1  |     at Socket.Readable.push (node:internal/streams/readable:228:10)
^CERROR: Aborting.

我怀疑可能问题在 'root'@'172.27.0.3' 这部分? (无端猜测) 或许可能127.0.0.1或者localhost可能能连上之类的?(也纯属猜测)

buqiyuan commented 2 years ago

Dockerfile不要删,删掉sample,如果你安装了docker desktop的话,直接删掉如下图所示的containerimage:

image image
buqiyuan commented 2 years ago
image

这里是通过network连接服务的,按理说不会有这个问题才对

buqiyuan commented 2 years ago

你这里连接不上数据库,主要应该是密码不对,看下这两个地方密码一样吗?

image
scarqin commented 2 years ago

root'@'172.27.0.3 这个是数据库地址,对外隐藏的,localhost 是服务地址(Node),外部可以访问的

axty666 commented 2 years ago

root'@'172.27.0.3 这个是数据库地址,对外隐藏的,localhost 是服务地址(Node),外部可以访问的

原来如此

axty666 commented 2 years ago

你这里连接不上数据库,主要应该是密码不对,看下这两个地方密码一样吗? image

改为一样的后重启 仍然连接不上 KSDZ{GJTZQPOUFM`7CI(B43

eoapi-mysql            | 2022-07-23 22:14:45+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.29-1.el8 started.
eoapi-mysql            | 2022-07-23 22:14:45+08:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
eoapi-mysql            | 2022-07-23 22:14:45+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.29-1.el8 started.
eoapi-mysql            | '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock'
eoapi-mysql            | 2022-07-23T14:14:45.719829Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.29) starting as process 1
eoapi-mysql            | 2022-07-23T14:14:45.731273Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
eoapi-mysql            | 2022-07-23T14:14:46.059322Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
eoapi-mysql            | 2022-07-23T14:14:46.298155Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
eoapi-mysql            | 2022-07-23T14:14:46.298306Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
eoapi-mysql            | 2022-07-23T14:14:46.300010Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
eoapi-mysql            | 2022-07-23T14:14:46.328561Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
eoapi-mysql            | 2022-07-23T14:14:46.328761Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.29'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server - GPL.
eoapi-remote-server_1  | [Nest] 20  - 07/23/2022, 10:14:54 PM   ERROR [TypeOrmModule] Unable to connect to the database. Retrying (3)...
eoapi-remote-server_1  | Error: Access denied for user 'root'@'172.29.0.3' (using password: YES)
eoapi-remote-server_1  |     at Packet.asError (/eoapi-remote-server/node_modules/mysql2/lib/packets/packet.js:728:17)
eoapi-remote-server_1  |     at ClientHandshake.execute (/eoapi-remote-server/node_modules/mysql2/lib/commands/command.js:29:26)
eoapi-remote-server_1  |     at PoolConnection.handlePacket (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:456:32)
eoapi-remote-server_1  |     at PacketParser.onPacket (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:85:12)
eoapi-remote-server_1  |     at PacketParser.executeStart (/eoapi-remote-server/node_modules/mysql2/lib/packet_parser.js:75:16)
eoapi-remote-server_1  |     at Socket.<anonymous> (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:92:25)
eoapi-remote-server_1  |     at Socket.emit (node:events:527:28)
eoapi-remote-server_1  |     at addChunk (node:internal/streams/readable:315:12)
eoapi-remote-server_1  |     at readableAddChunk (node:internal/streams/readable:289:9)
eoapi-remote-server_1  |     at Socket.Readable.push (node:internal/streams/readable:228:10)
eoapi-remote-server_1  | [Nest] 27  - 07/23/2022, 10:14:54 PM   ERROR [TypeOrmModule] Unable to connect to the database. Retrying (3)...
eoapi-remote-server_1  | Error: Access denied for user 'root'@'172.29.0.3' (using password: YES)
eoapi-remote-server_1  |     at Packet.asError (/eoapi-remote-server/node_modules/mysql2/lib/packets/packet.js:728:17)
eoapi-remote-server_1  |     at ClientHandshake.execute (/eoapi-remote-server/node_modules/mysql2/lib/commands/command.js:29:26)
eoapi-remote-server_1  |     at PoolConnection.handlePacket (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:456:32)
eoapi-remote-server_1  |     at PacketParser.onPacket (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:85:12)
eoapi-remote-server_1  |     at PacketParser.executeStart (/eoapi-remote-server/node_modules/mysql2/lib/packet_parser.js:75:16)
eoapi-remote-server_1  |     at Socket.<anonymous> (/eoapi-remote-server/node_modules/mysql2/lib/connection.js:92:25)
eoapi-remote-server_1  |     at Socket.emit (node:events:527:28)
eoapi-remote-server_1  |     at addChunk (node:internal/streams/readable:315:12)
eoapi-remote-server_1  |     at readableAddChunk (node:internal/streams/readable:289:9)
eoapi-remote-server_1  |     at Socket.Readable.push (node:internal/streams/readable:228:10)
^CERROR: Aborting.
buqiyuan commented 2 years ago
image

你进入mysql容器,使用你设置的密码看能登录吗?如果你改过config.production.ts文件,则需要删除它之前的镜像,重新构建

scarqin commented 2 years ago

你这里连接不上数据库,主要应该是密码不对,看下这两个地方密码一样吗? image

@buqiyuan 同样的数据库配置要在两个地方维护吗,统一会更好?

buqiyuan commented 2 years ago

你这里连接不上数据库,主要应该是密码不对,看下这两个地方密码一样吗? image

@buqiyuan 同样的数据库配置要在两个地方维护吗,统一会更好?

可以,那就统一使用环境变量文件?然后每次修改为不同密码之后,mysql服务的root下的密码也要实时更改吗?

axty666 commented 2 years ago

确实是能登录进去的 删除掉容器和images后确实成功链接到数据库了 直接访问返回Eoapi,Hello World! 但是客户端连接显示远程服务器连接失败

scarqin commented 2 years ago

你配置的地址和 token 对吗?

axty666 commented 2 years ago

域名和解析到的ip都试了 token没有改过

scarqin commented 2 years ago

有这个文件吧?

axty666 commented 2 years ago

有这个文件吧?

image

buqiyuan commented 2 years ago

image .env是在构建镜像之前就创建的了吗?还是刚刚才创建的,如果是刚创建的,则需要删除旧镜像,重新构建

scarqin commented 2 years ago

可以通过 system/status 接口看看服务鉴权能否通过

axty666 commented 2 years ago

ok 终于是成功连接到了 万分感谢