对于我的大学数据库项目,我们必须使用mysql-connector-python和docker创建一个python应用程序。
我们为MySQL做了一个docker-compose,它在应用程序中运行良好。由于缺乏理解,Python应用程序从容器移动到本地终端。从那时起,Python应用程序不再连接到SQL容器。
docker-compose.yml
version: "3.9"
services:
mysql:
restart: always
container_name: "mysql"
image: mysql:latest
ports:
- 3306:3306
expose:
- 3306
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=mysql
- MYSQL_USER=user
- MYSQL_PASSWORD=password
pythonmain.py脚本:
# pip install -r requirements.txt
# # in requerements.txt
# # line1: mysql-connector-python
# # line2:
import mysql.connector as mysql
def main():
cnx = mysql.connect(
user='user',
password='password',
database='mysql',
host='127.0.0.1',
port=3306
)
cursor = cnx.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS test(id INTEGER(64) PRIMARY KEY, name VARCHAR(255))")
cursor.execute("INSERT INTO test VALUES (2, 'bla')")
cursor.execute("INSERT INTO test VALUES (3, 'blabla')")
cursor.execute("INSERT INTO test VALUES (4, 'blablabla')")
cursor.execute("SELECT * FROM test")
for row in cursor.fetchall():
print(row)
cursor.close()
cnx.close()
if __name__ == "__main__":
main()
首先,我使用以下命令启动docker容器:
$ docker-compose down
$ docker-compose build
$ docker-compose up
我等待容器启动,并启动python应用程序:
$ python main.py
在另一个终端。
追加的错误如下:_mysql_connector.MySQLInterfaceError: Unknown MySQL server host 'mysql' (11001)
异常正在处理,但永远不会结束处理。
个人问题:
简体中文(zh_cn)
窗口:11个
Docker:20.10.17
为了修复主机服务器错误,我在以下文档中搜索:
- https://peps.python.org/pep-0249/#connection
- https://dev.mysql.com/doc/connector-python/en/connector-python-connectargs.html
检查Stack Overflow上的标签mysql-connector-python。
有人能帮我找到我错过了什么吗?
1条答案
按热度按时间h22fl7wq1#
我删除了docker compose中的'expose'属性来修复它
更新后: