Bagaimana untuk membolehkan akses jauh kepada pengguna root mysql docker dalam fail docker-compose?
P粉145543872
P粉145543872 2023-09-06 13:10:11
0
1
628

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粉145543872
P粉145543872

membalas semua(1)
P粉144705065

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan