每当我尝试将express.js应用程序连接到节点服务器时,我都会收到一个错误(见下面的控制台消息)。之前,在将应用程序停靠之前,一切都运行顺利,但在创建了mysql-image-container(docker)并通过docker运行mysql之后,一切都运行顺利。但现在,当我尝试将应用程序连接到SQL Server而不是通过docker-container时,我会收到以下错误
(node:22136) UnhandledPromiseRejectionWarning: SequelizeAccessDeniedError: Access denied for user 'root'@'localhost' (using password: YES)
at ConnectionManager.connect (C:\Users\A\ARISE1\node_modules\sequelize\lib\dialects\mysql\connection-manager.js:94:17)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async ConnectionManager._connect (C:\Users\A\ARISE1\node_modules\sequelize\lib\dialects\abstract\connection-manager.js:220:24)
at async C:\Users\A\ARISE1\node_modules\sequelize\lib\dialects\abstract\connection-manager.js:174:32
at async ConnectionManager.getConnection (C:\Users\A\ARISE1\node_modules\sequelize\lib\dialects\abstract\connection-manager.js:197:7)
at async C:\Users\A\ARISE1\node_modules\sequelize\lib\sequelize.js:304:26
at async MySQLQueryInterface.tableExists (C:\Users\A\ARISE1\node_modules\sequelize\lib\dialects\abstract\query-interface.js:102:17)
at async Function.sync (C:\Users\A\ARISE1\node_modules\sequelize\lib\model.js:939:21)
at async Sequelize.sync (C:\Users\A\ARISE1\node_modules\sequelize\lib\sequelize.js:376:9)
(Use node --trace-warnings ...
显示创建警告的位置)(节点:22136)未处理的承诺拒绝警告:未处理的承诺拒绝。此错误是由于在不带catch块的异步函数内部引发,或者由于拒绝未使用.catch()处理的承诺而引起的。要在未处理的承诺拒绝时终止节点进程,请使用CLI标志--unhandled-rejections=strict
(请参阅https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。(拒绝ID:1)(节点:22136)[DEP 0018]弃用警告:不推荐使用未处理的承诺拒绝。将来,未处理的承诺拒绝将终止Node.js进程,并显示非零退出代码。
我试过删除docker文件mysql-image-container(从docker),但仍然无法将我的应用程序连接到本地mysql服务器。现在,如果我甚至尝试通过SQL命令行连接到我的数据库,我无法这样做,即使有正确的凭据。虽然我可以通过MySQL Workbench连接到数据库。用于build-image/运行容器的docker命令是:
docker run -p 3306:3306 --name nodejs-mysql -e MYSQL_ROOT_PASSWORD=pass -e MYSQL_DATABASE=database -d mysql:5.7
在此之前,我习惯于右键单击Dockerfile并选择构建映像选项。我没有完全理解Dockerfile的内容,所以我混合了一些来自在线源代码。
任何帮助都将不胜感激。
2条答案
按热度按时间cld4siwp1#
请分享你的代码。也可以参考下面的代码来了解如何建立连接
vwoqyblh2#
而不是上面,应该是这个