我一直在使用sequelize迁移,而没有任何问题,例如在我们的开发服务器中:
"development": {
"username": "root",
"password": "password",
"database": "db",
"host": "127.0.0.1",
"dialect": "mysql"
}使用sequelize-cli可以很好地工作:
npx sequelize db:migrate结果:
Sequelize CLI [Node: 12.16.1, CLI: 6.2.0, ORM: 6.3.5]
Loaded configuration file "config\config.json".
Using environment "development".
No migrations were executed, database schema was already up to date.我们的生产服务器也是如此,它的db与app在不同的服务器上:
"production": {
"username": "root",
"password": "password",
"database": "db",
"host": "172.xx.xx.11",
"dialect": "mysql"
}所以最近我们升级了我们的生产服务器,有3个使用mariadb的数据库服务器,由负载均衡器(maxscale)、galera集群或其他东西管理,使用与以前相同的设置,所以现在是这样的:
server a: 172.xx.xx.11,
server b: 172.xx.xx.12,
server c: 172.xx.xx.13,
load balancer: 172.xx.xx.10我们的新配置如下:
"production": {
"username": "root",
"password": "password",
"database": "db",
"host": "172.xx.xx.10",
"dialect": "mysql"
}app server和db server之间没有直接开放的防火墙,只有app server到负载均衡器。
使用sequelize测试app服务器和负载均衡器的连接似乎没有问题,如果用户名和密码正确,则可以通过,如果用户名错误,或密码错误会给出
ERROR: Access denied for user 'root'@'172.xx.xx.10' (using password: YES)这里没有问题。我只是想说这其中有联系。
那么使用以下命令也没有问题:
npx sequelize db:drop或
npx sequelize db:create结果是
Sequelize CLI [Node: 12.16.1, CLI: 6.2.0, ORM: 6.3.5]
Loaded configuration file "config\config.json".
Using environment "production".
Database db created.在我们所有的数据库服务器中验证数据库确实删除并创建了。
但当我尝试进行迁移时,会发生这种情况:
Sequelize CLI [Node: 12.16.1, CLI: 6.2.0, ORM: 6.3.5]
Loaded configuration file "config\config.json".
Using environment "production".
ERROR: Unknown database 'db'我已经验证了我们所有的数据库服务器都有' db‘数据库,它甚至是由sequelize基于配置创建的,但不知何故sequelize cant似乎识别或识别了'db’数据库。
如果你以前有过这样的经历,请帮助我,如果你需要更多的信息,请让我知道。谢谢。
发布于 2020-10-29 15:41:40
您可以在MaxScale中通过在[maxscale]部分下添加log_info=true来启用详细日志级别。这应该有助于解释正在发生的事情以及失败的原因。
Sequelize可能会做一些假设它使用相同的数据库服务器的事情。例如,执行插入并立即读取插入的值将始终在单个服务器上工作,但对于分布式设置,值可能尚未复制到所有节点。
如果你无法解释为什么会这样,或者你认为MaxScale做错了什么,请在MaxScale项目下打开一个关于MariaDB Jira的bug报告。
发布于 2020-10-30 09:45:55
结果是maxscale用户没有足够的权限。将SHOW DATABASES权限授予maxscale用户解决了我的问题。
更多信息:https://mariadb.com/kb/en/mariadb-maxscale-14/maxscale-configuration-usage-scenarios/#service
https://stackoverflow.com/questions/64583382
复制相似问题