Я пытаюсь использовать NodeJS + Express, MySQL, phpmyadmin в целом. Сам phpmyadmin разрешает адрес по порту 8183
в моей ситуации. Но всякий раз, когда я собираюсь подключить его через mysql
js пакет NodeJS. это не работает и выдает ошибку
Error: connect ECONNREFUSED 127.0.0.1:3306
Примечание: я пробовал с несколькими вариантами, так как хост никто не работал для меня!
пример: mysql, my_machine_ip, localhost, 0.0.0.0
у меня ничего не получалось.
Вот мой yml
файл.
version : '3'
services:
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: node_pa
links:
- mysql
depends_on:
- mysql
environment:
PMA_HOST: mysql
PMA_PORT: 3306
PMA_ARBITRARY: 1
restart: always
ports:
- 8183:80
node_backend:
container_name: node_with_pa_msql
build: ./backend_app
# volumes:
# - ./backend_app:/usr/src/app
links:
- mysql
depends_on:
- mysql
restart: on-failure
ports:
- 3004:4006
mysql:
image: mysql:latest
container_name: node_mysql
# volumes:
# - backend_app/db_sample:/docker-entrypoint-initdb.d
environment:
MYSQL_USER: user
MYSQL_PASSWORD: user
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: default_schema
И mysqlJS Сведения о соединении
// environment variables
const PORT = process.env.PORT || 4006;
const HOST = process.env.HOST || 'localhost';
// // mysql credentials
const connection = mysql.createConnection({
host: HOST,
user: process.env.MYSQL_USER || 'root',
password: process.env.MYSQL_PASSWORD || 'root',
connectTimeout: 20000
});
Итак, phpmyadmin работает, и я могу получить доступ к базам данных / создать / удалить / редактировать таким образом, так что это гарантирует, что mysql само по себе также работает, но сейчас я не могу подключиться это с mysqlJS моего nodejs приложения.
вот пример проекта с проблемой, если вы хотите попробовать на своей машине проект GitHub ссылка с файлом YAML
Примечание. Проверка ответа добавила полное решение этой проблемы.