代码之家  ›  专栏  ›  技术社区  ›  Shwetha K

Docker错误:MySQLdb_例外。操作错误:(2002,“无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器”)

  •  0
  • Shwetha K  · 技术社区  · 2 年前

    我正试图通过docker compose启动服务器

    我有个错误:

    MySQLdb._exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
    

    但是我可以通过下面的命令连接到mysql

     docker exec -it containername  mysql -uroot -p
    

    docker撰写。yml

    version: '3.1'
    services: 
    db:
      image: mysql
      command: --default-authentication-plugin=mysql_native_password
      volumes:
       - ./db:/docker-entrypoint-initdb.d/:ro    
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ****
      MYSQL_DATABASE: emp
      MYSQL_PASSWORD: ****
    ports:
     - "33061:3306" 
    emp:
      build: .
      restart: always
      ports:
      - 5005:5000    
    volumes:
       my-db:
    

    dockerfile

    FROM python:3.6-buster
    LABEL image for a very management application
    # We copy just the requirements.txt first to leverage Docker cache
    COPY ./requirements.txt /app/requirements.txt
    WORKDIR /app
    RUN apt-get install -y default-libmysqlclient-dev
    RUN pip3 install -r requirements.txt
    RUN touch /var/log/cron.log
    
    COPY crontab /etc/cron.d/cjob
    RUN chmod 0644 /etc/cron.d/cjob
    ENV PYTHONUNBUFFERED 1
    CMD cron -f
    EXPOSE 5000
    COPY . .
    CMD [ "python3", "app.py" ]
    

    取消配置:

    from flask_mysqldb import MySQL,MySQLdb
    
    app = Flask(__name__)        
    app.config['MYSQL_HOST'] = 'localhost'
    app.config['MYSQL_USER'] = '*****'
    app.config['MYSQL_PASSWORD'] = '****'
    app.config['MYSQL_DB'] = 'emp'
    app.config['MYSQL_CURSORCLASS'] = 'DictCursor'
    mysql = MySQL(app) 
    

    谁能帮我解决这个问题吗。谢谢大家

    1 回复  |  直到 2 年前
        1
  •  1
  •   Def Soudani    2 年前

    app.config['MYSQL_HOST'] = 'db'