Mysql
 sql >> Database >  >> RDS >> Mysql

Esegui MySQL sulla porta 3307 usando Docker Compose

Variabile SQL_INTERNAL_PORT probabilmente ha 3307 valore. Devi cambiarlo in 3306 .

Inoltre, puoi rimuovere

    expose:
    - "${SQL_INTERNAL_PORT}"

linee. MySQL espone già la porta 3306.

Tutte le applicazioni nel cluster utilizzano porte interne (3306 nel caso di MySQL). Porte esterne (nella sezione porte) sono necessarie solo per la comunicazione di parole esterne.

Se vuoi avere più database, devi cambiare docker-comporre qualcosa come questo:

version: '3'
services:
hackernews:
    image: prismagraphql/prisma:1.8
    restart: always
    ports:
    - "${CLIENT_PORT}:${INTERNAL_PORT}"
    environment:
    PRISMA_CONFIG: |
        port: $INTERNAL_PORT
        managementApiSecret: $PRISMA_MANAGEMENT_API_SECRET
        databases:
        default:
            connector: mysql
            host: mysql_first
            port: 3306
            user: root
            password: $SQL_PASSWORD
            migrations: true
        second:
            connector: mysql
            host: mysql_second
            port: 3306
            user: root
            password: $SQL_PASSWORD
            migrations: true
mysql_first:
    image: mysql:5.7
    restart: always
    environment:
    MYSQL_ROOT_PASSWORD: $SQL_PASSWORD
    ports:
     - 3307:3306
    volumes:
    - ./custom/:/etc/mysql/conf.d/my.cnf
    - mysql:/var/lib/mysql

 mysql_second:
    image: mysql:5.7
    restart: always
    environment:
    ports:
     - 3308:3306
    MYSQL_ROOT_PASSWORD: $SQL_PASSWORD