Rumah >pangkalan data >tutorial mysql >Kaedah konfigurasi tersuai imej mysql rasmi Docker

Kaedah konfigurasi tersuai imej mysql rasmi Docker

WBOY
WBOYke hadapan
2023-05-27 13:34:061306semak imbas

Salin kod Kod adalah seperti berikut:

$ docker run --name some-mysql -e mysql_root_password=my-secret-pw -d daocloud.io/mysql:tag

some-mysql Nama bekas ditentukan, my-secret-pw menentukan kata laluan pengguna root, dan parameter tag menentukan versi mysql yang anda mahu

Dengan cara ini data tidak berterusan, jadi ia perlu dipasang dalam parameter permulaan

Jadi pangkalan data terus berjalan seperti ini, tetapi kerana program baru-baru ini perlu menyokong ekspresi emoji, set aksara mysql perlu ditukar.

Salin kod Kod adalah seperti berikut:

$ docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e mysql_root_password=my- secret-pw -d daocloud.io/mysql:tag

Pada masa ini, anda boleh melekapkan fail konfigurasi tersuai Dokumentasi rasmi menyatakan bahawa

Apabila perkhidmatan mysql bermula, ia akan menjadi. /etc/mysql/my.cnf Sebagai fail konfigurasi, fail ini akan mengimport semua fail dengan akhiran .cnf dalam direktori /etc/mysql/conf.d. Fail ini memanjangkan atau mengatasi konfigurasi dalam fail /etc/mysql/my.cnf. Jadi anda boleh mencipta fail konfigurasi anda sendiri dan lekapkannya ke direktori /etc/mysql/conf.d dalam bekas mysql.

Jadi cara paling mudah untuk menukar konfigurasi pangkalan data adalah dengan mencipta fail konfigurasi baharu pada mesin hos dan menukarnya kepada utf8mb4

[client]

default-character-set=utf8mb4


[mysqld]

character-set-client-handshake = false

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

[mysql]
default-character-set=utf8mb4

Kemudian salin fail itu ke bekas docker yang sepadan folder

docker cp /home/my.cnf(宿主机文件路径) [容器id]:/etc/mysql/mysql.conf.d

Akhir sekali, gunakan arahan docker stop dan start untuk memulakan semula bekas untuk memuatkan konfigurasi tersuai.

Bekas yang dikonfigurasikan oleh imej mysql rasmi docker tidak boleh dimulakan

Saya menggunakan imej docker mysql. Mula-mula buat dan mulakan imej:

# docker run --name mysql-b \
> -p 33002:3306 -v /zc/mysql/datadir-b:/var/lib/mysql \
> -e mysql_root_password='123456' -d mysql:latest

Mula seperti biasa, tiada masalah. Biasanya apabila kita menggunakan mysql, kita perlu menetapkan parameter. Untuk menetapkan parameter, kita mesti memasukkan bash bekas dahulu dan melakukan operasi:

docker exec -it mysql-b bash

Fail konfigurasi lalai mysql ialah fail /etc/mysql/my.cnf. Jika anda ingin menyesuaikan konfigurasi, adalah disyorkan untuk mencipta fail .cnf dalam direktori /etc/mysql/conf.d. Fail yang baru dibuat boleh dinamakan sewenang-wenangnya, asalkan akhiran adalah cnf. Item konfigurasi dalam fail yang baru dibuat boleh mengatasi item konfigurasi dalam /etc/mysql/my.cnf. Oleh kerana imej docker rasmi mysql tidak menyediakan editor vim, saya menggunakan arahan cat untuk menjana fail dan menambah kandungan:

# cat >test.cnf <<eof
[mysqldump]
user=root
password=&#39;123456&#39;
[mysqld]
max_allowed_packet=8m
lower_case_table_names=1
character_set_server=utf8
max_connections=900
max_connect_errors=600
default-character-set=utf8
eof

Selepas keluar, saya menghentikan bekas dan memulakan semula bekas itu bekas tidak dapat dimulakan.

Penyelesaian

Padamkan bekas asal yang tidak boleh dimulakan. Buat semula bekas baharu. Inti masalahnya ialah fail test.cnf asal mempunyai ralat. Cari baris terakhir fail konfigurasi asal:

default-character-set=utf8

Padamkan baris ini. Hanya pastikan tiada baris sedemikian semasa menambah fail konfigurasi.

Punca masalah

Dalam imej docker rasmi mysql, di bawah label terkini, tiada set aksara lalai dalam [mysqld ] bahagian konfigurasi item konfigurasi ini.
Jika anda ingin melihat semua item konfigurasi, anda boleh menggunakan arahan berikut dan menggunakan saluran paip untuk meletakkan bantuan output ke dalam fail help.txt:

docker run -it --rm mysql:tag --verbose --help > help.txt

di mana teg mewakili teg imej, seperti terkini dan 5.6 .

Atas ialah kandungan terperinci Kaedah konfigurasi tersuai imej mysql rasmi Docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam