Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk membolehkan akses jauh kepada pengguna root mysql docker dalam fail docker-compose?

Pada masa ini, saya menggunakan fail YAML mudah berikut untuk memulakan pelayan MySQL

version: '3.3'
services:
  db:
    image: mysql/mysql-server
    restart: always
    environment:
      MYSQL_DATABASE: 'db'
      MYSQL_USER: 'user'
      MYSQL_PASSWORD: 'strongpasswordnobodycanguessorcrackatall'
      # Password for root access
      MYSQL_ROOT_PASSWORD: 'somethingevenmorestrongerthaneverbefore'
    ports:
      - '3306:3306'
    expose:
      - '3306'
    volumes:
      - compose-my-db
volumes:
  - ./:compose-my-db:

Namun, saya perlu menyambung ke bekas dan menggunakan arahan berikut:

将 *.* 上的所有内容授予 'c'@'%';刷新权限;

Ini memberi saya semua kebenaran yang saya perlukan dan membenarkan sambungan jauh melalui pengguna yang dibuat dalam fail karang.

Saya tahu saya boleh mengubah suai fail my.cnf atau menambah skrip init yang dijalankan selepas mysqld dimulakan, tetapi saya mahu pengguna dibuat dalam Docker-Compose.

P粉145543872P粉145543872382 hari yang lalu570

membalas semua(1)saya akan balas

  • P粉144705065

    P粉1447050652023-09-07 10:38:13

    Saya rasa kita boleh mencapai ini dengan MYSQL_INITDB - menyediakan skrip init dalam bekas MySQL.

    Pertama, anda boleh menambah pembolehubah persekitaran untuk MYSQL_INITDB seperti di bawah

    MYSQL_INITDB: /docker-entrypoint-initdb.d/01.sql

    Maka anda perlu mengemas kini konfigurasi volum seperti berikut

    volumes:
      - ./compose-my-db:/docker-entrypoint-initdb.d

    Buat fail 01.sql dalam direktori yang sama dengan fail karang docker anda.

    GRANT ALL ON *.* TO 'c'@'%';
    FLUSH PRIVILEGES;

    Lihat dokumentasi rasmi di sini: https://hub.docker.com/_/mysql/ Di bawah subtopik Memulakan contoh baharu.

    balas
    0
  • Batalbalas