gpt4 book ai didi

mysql - 为什么 Node.js 无法连接到我的数据库?

转载 作者:行者123 更新时间:2023-11-30 00:56:51 24 4
gpt4 key购买 nike

我正在尝试在我的 Vagrant 虚拟机上运行 node.js。当我尝试将 node.js 连接到我的数据库时,它失败,如下所示。谁能向我解释一下我应该如何解决它?

% sequelize -m
Loaded configuration file "config/config.json".
Using environment "development".
You need to install mysql package manually

TypeError: Cannot call method 'createConnection' of undefined
at module.exports.connect (/usr/local/lib/node_modules/sequelize/lib/dialects/mysql/connector-manager.js:259:28)
at Object.pool.Pooling.Pool.create (/usr/local/lib/node_modules/sequelize/lib/dialects/mysql/connector-manager.js:125:19)
at createResource (/usr/local/lib/node_modules/sequelize/node_modules/generic-pool/lib/generic-pool.js:258:13)
at dispense (/usr/local/lib/node_modules/sequelize/node_modules/generic-pool/lib/generic-pool.js:250:9)
at Object.me.acquire (/usr/local/lib/node_modules/sequelize/node_modules/generic-pool/lib/generic-pool.js:316:5)
at module.exports.enqueue (/usr/local/lib/node_modules/sequelize/lib/dialects/mysql/connector-manager.js:312:19)
at module.exports.ConnectorManager.query (/usr/local/lib/node_modules/sequelize/lib/dialects/mysql/connector-manager.js:164:15)
at module.exports.Sequelize.query (/usr/local/lib/node_modules/sequelize/lib/sequelize.js:252:34)
at null.<anonymous> (/usr/local/lib/node_modules/sequelize/lib/query-interface.js:689:32)
at null.<anonymous> (/usr/local/lib/node_modules/sequelize/lib/emitters/custom-event-emitter.js:26:18)

我可以保证我的数据库已启动、正在运行并且可连接:

% mysql -u root -pmyPassWord


Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 45
Server version: 5.5.34-0ubuntu0.12.04.1 (Ubuntu)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

我还可以向您展示我已经使用 npm 安装了 mysql 软件包:

% sudo npm install -g mysql@2.0.0-alpha8
npm http GET https://registry.npmjs.org/mysql/2.0.0-alpha8
npm http 304 https://registry.npmjs.org/mysql/2.0.0-alpha8
npm http GET https://registry.npmjs.org/require-all/0.0.3
npm http GET https://registry.npmjs.org/bignumber.js/1.0.1
npm http 304 https://registry.npmjs.org/bignumber.js/1.0.1
npm http 304 https://registry.npmjs.org/require-all/0.0.3
mysql@2.0.0-alpha8 /home/vagrant/.nvm/v0.10.22/lib/node_modules/mysql
├── require-all@0.0.3
└── bignumber.js@1.0.1

% sudo npm install -g mysql
npm http GET https://registry.npmjs.org/mysql
npm http 304 https://registry.npmjs.org/mysql
npm http GET https://registry.npmjs.org/require-all/0.0.3
npm http GET https://registry.npmjs.org/bignumber.js/1.0.1
npm http 304 https://registry.npmjs.org/bignumber.js/1.0.1
npm http 304 https://registry.npmjs.org/require-all/0.0.3
mysql@2.0.0-rc2 /home/vagrant/.nvm/v0.10.22/lib/node_modules/mysql
├── require-all@0.0.3
└── bignumber.js@1.0.1

最佳答案

我解决了这个问题。问题是 Node 正在/usr/local/lib/node_modules 中查找其模块但 npm 将它们安装在 ~/.nvm/v0.10.22/lib/node_modules 中。

所以我用 ~/.nvm/v0.10.22/lib/node_modules 的软链接(soft link)替换了/usr/local/lib/node_modules

关于mysql - 为什么 Node.js 无法连接到我的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20482742/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com