我搞砸了。
我正在开发一个Node / Express应用程序,它使用Sequelize ORM写入本地mysql DB进行开发。我今天早上装了它,很好。在今天工作的某个时刻,我试图重置我的mysql root密码(出于无关原因)。我这样做了,然后尝试重新启动我的应用程序的节点服务器,现在无法加载。运行时
node app.js
我得到了
TypeError: Uncaught, unspecified "error" event.
at TypeError (<anonymous>)
at EventEmitter.emit (events.js:74:15)
at module.exports.finish (/Users/DrHall/Desktop/gitRepos/CRPinit/node_modules/sequelize/lib/query-chainer.js:142:30)
at exec (/Users/DrHall/Desktop/gitRepos/CRPinit/node_modules/sequelize/lib/query-chainer.js:96:16)
at onError (/Users/DrHall/Desktop/gitRepos/CRPinit/node_modules/sequelize/lib/query-chainer.js:72:11)
at EventEmitter.emit (events.js:95:17)
at null.<anonymous> (/Users/DrHall/Desktop/gitRepos/CRPinit/node_modules/sequelize/lib/dao-factory.js:299:42)
at EventEmitter.emit (events.js:95:17)
at null.<anonymous> (/Users/DrHall/Desktop/gitRepos/CRPinit/node_modules/sequelize/lib/query-interface.js:224:17)
at EventEmitter.emit (events.js:98:17)
我发现其他人报告了此错误消息,但其含糊不清,原因不同,我得到的特殊故障。在整个过程中我太新了,不知道在重置root密码的过程中我做了些什么,这使得Sequelize无法加载。
使用新密码可以很好地加载Mysql root。该应用程序不使用root用户,它使用单独的用户,也可以登录。
任何想法我做错了什么?
解决问题的额外信息:
要重置密码我使用'-skip-grant-tables'。运行grep我看到mysql仍在运行该命令,所以我杀了它并重新启动它。运行ps -Af |我得到grep mysql
501 7563 1 0 4:31PM ttys000 0:00.02 /bin/sh /usr/local/Cellar/mysql/5.6.14/bin/mysqld_safe --datadir=/usr/local/var/mysql --pid-file=/usr/local/var/mysql/Lil-Coder.pid
501 7662 7563 0 4:31PM ttys000 0:00.44 /usr/local/Cellar/mysql/5.6.14/bin/mysqld --basedir=/usr/local/Cellar/mysql/5.6.14 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.14/lib/plugin --log-error=/usr/local/var/mysql/Lil-Coder.err --pid-file=/usr/local/var/mysql/Lil-Coder.pid
501 7677 7460 0 4:32PM ttys000 0:00.00 grep mysql
哪个好看?但尝试引导节点时出现同样的错误。
我只是要在'W'下为WTF提交这个。最终解决了什么基本上没什么。我通过Sequelize连接到MySQL DB:
sequelize = new Sequelize(config.database, config.username, config.password, {
dialect: 'mysql',
port: 3306
}),
配置是我要求的外部文件。我替换了所有的配置。变量与配置文件中的实际字符串(复制/粘贴)一起工作。将它们复制回来,它仍然有效。这对我来说都是伏都教。