Python을 사용하여 Docker에서 MariaDB를 연결할 수 없습니다.
저는 도커 컴포지트 서비스로 운영되는 mariadb를 연결하려고 합니다.저는 "app"이라는 이름의 다른 서비스를 가지고 있으며 단지 db를 연결하기 위해 그 안에 새로운 파이썬 파일을 포함하고 있습니다.
phpmyadmin에 성공적으로 연결되지만 python과 연결하려고 하면 어떤 이유로 실패합니다.
오류 메시지:
mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on 'mariadb:3306' (-3 Try again)
도커-docker.yml
version: "3"
services:
app:
build:
context: .
dockerfile: ./Dockerfile
volumes:
- ./app:/app
command: >
sh -c "python3 services/db_connection.py"
depends_on:
- mariadb
prestashop:
image: prestashop/prestashop
networks:
myprestashop:
ports:
- 8181:80
links:
- mariadb:mariadb
depends_on:
- mariadb
volumes:
- /srv/Configs/PrestaShop/src:/var/www/html
- /srv/Configs/PrestaShop/src/modules:/var/www/html/modules
- /srv/Configs/PrestaShop/src/themes:/var/www/html/themes
- /srv/Configs/PrestaShop/src/override:/var/www/html/override
environment:
- PS_DEV_MODE=1
- DB_SERVER=mariadb
- DB_USER=root
- DB_PASSWD=mycustompassword
- DB_NAME=prestashop
- PS_INSTALL_AUTO=0
mariadb:
image: mariadb
networks:
myprestashop:
volumes:
- /srv/Databases/PrestaShop:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=mycustompassword
- MYSQL_DATABASE=prestashop
phpmyadmin:
image: phpmyadmin/phpmyadmin
networks:
myprestashop:
links:
- mariadb:mariadb
ports:
- 1235:80
depends_on:
- mariadb
environment:
- PMA_HOST=mariadb
- PMA_USER=root
- PMA_PASSWORD=mycustompassword
networks:
myprestashop:
db_connection.py
import mysql.connector as database
connection = database.connect(
user='root',
password='mycustompassword',
host='mariadb',
database='prestashop')
if connection:
print ("Connected Successfully")
else:
print ("Connection Not Established")
도와주셔서 감사합니다.
추가하는 것을 잊었습니다.myprestashop
네트워크app
서비스.서비스에 명시적으로 정의된 네트워크가 없는 경우 서비스는default
하나(같은 이름)myproject_default
. 그래서 오류의 이유는app
서비스는 한 네트워크에 있고 다른 모든 것은 다른 네트워크에 있습니다.myprestashop
).
언급URL : https://stackoverflow.com/questions/67844352/cant-connect-mariadb-from-docker-using-python
'source' 카테고리의 다른 글
jQuery 클릭 라벨 클릭 시 두 번 실행됩니다. (0) | 2023.08.28 |
---|---|
데이터베이스 Javascript와의 동기화 문제 (0) | 2023.08.28 |
SSH 터널링을 통해 Python이 MySQL에 연결할 수 있도록 설정 (0) | 2023.08.28 |
Android에서 스레드 또는 프로세스를 일시 중지/슬립하는 방법은 무엇입니까? (0) | 2023.08.28 |
Python 코드에서 REPL(Read, Eval, Print, Loop)로 드롭하는 방법 (0) | 2023.08.28 |