所以..我知道这可能是一个愚蠢的问题,因为之前曾有人问过并回答过这个问题,但我真的很想了解有关它的一切。
当前,我使用docker
建立一个网站。在我的docker-compose
中,我有2个服务:mysqldb
和node
(这是api)。
现在..为了使用api连接到我的sql数据库,需要一些时间才能启动MySql。.为此,我使用了execute.sh
脚本,该脚本使我能够手动运行它。除此之外,我还有一个手动运行的db_schema.js
,它会在数据库中创建表。
这就是我的联系方式:
const mysql = require('mysql');
const connection = mysql.createConnection({
host: "mysqldb",
user: "root",
password: "password",
database: "database",
});
connection.connect();
let createScoresTable = "CREATE TABLE IF NOT EXISTS scores (" +
"team_a VARCHAR(100) NOT NULL," +
"team_a_score INT UNSIGNED NOT NULL," +
"team_b_score INT UNSIGNED NOT NULL," +
"team_b VARCHAR(100)" +
")"
connection.query(createScoresTable)
connection.end();
但是正如标题所述,我在身份验证方面遇到问题。
我知道我可以通过输入数据库并运行ALTER
命令来手动完成此操作,但是每次执行docker-compose down
时都无法运行它。
我的问题是如何不使用ALTER
来解决此问题?
谢谢。
答案 0 :(得分:1)
您需要在docker-compose的MYSQL服务中添加以下内容:
command: --default-authentication-plugin=mysql_native_password