Bagaimana docker menyelesaikan masalah kegagalan untuk memulakan mysql

PHPz
Lepaskan: 2023-03-31 18:20:53
asal
6562 orang telah melayarinya

Apabila menggunakan docker untuk menggunakan mysql, anda mungkin menghadapi kegagalan permulaan. Artikel ini akan menerangkan secara terperinci cara menyelesaikan situasi ini.

1. Penerangan Masalah

Mysql ialah pangkalan data hubungan yang sangat popular, dan Docker ialah teknologi kontena. Menggunakan Docker membolehkan kami menggunakan pangkalan data Mysql dengan mudah, tetapi kadangkala memulakan bekas Mysql gagal. Kami mendapati bahawa permulaan gagal apabila menggunakan arahan Docker berikut untuk memulakan bekas Mysql:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=mypassword -d mysql:5.7
Salin selepas log masuk

2. Analisis masalah

Apabila memulakan bekas mengikut arahan di atas, -e parameter menentukan pembolehubah persekitaran , di mana MYSQL_ROOT_PASSWORD ialah kata laluan pengguna root Mysql. mysql: 5.7 ialah versi cermin pangkalan data Mysql. Walau bagaimanapun, kadangkala kita menghadapi kegagalan untuk memulakan bekas. Pada masa ini, kita boleh menganalisis punca ralat dengan melihat log bekas permulaan.

docker logs mysql
Salin selepas log masuk
Salin selepas log masuk

Didapati bekas Mysql terhempas semasa ia dimulakan. Oleh itu, kita perlu mencari punca kesilapan.

3. Penyelesaian Masalah

Kita boleh menyelesaikan masalah ini melalui langkah-langkah berikut:

1. Periksa sama ada bekas itu berjalan

docker ps
Salin selepas log masuk

Jika bekas itu sudah Semasa berjalan, kita hanya perlu melihat log kontena.

2. Lihat log kontena

docker logs mysql
Salin selepas log masuk
Salin selepas log masuk

Mesej ralat berikut boleh ditemui dalam log:

[ERROR] [MY-012144] [InnoDB] ./ibdata1 can't be opened in read-write mode
[ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error. 
[ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine: 0
[ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
[ERROR] [MY-010119] [Server] Aborting
Salin selepas log masuk

Dengan menganalisis log ralat, kita dapat melihat bahawa Mysql gagal dimulakan Sebabnya ialah direktori data tidak boleh ditulis. Untuk menyelesaikan masalah ini, kita perlu mencari lokasi direktori data dan menetapkan kebenarannya kepada boleh tulis.

3 Lihat direktori data bekas Mysql

docker inspect mysql | grep -i datadir
Salin selepas log masuk

Dalam hasil keluaran, kita boleh mencari direktori data bekas Mysql, seperti yang ditunjukkan di bawah:

"DataDir": "/var/lib/mysql"
Salin selepas log masuk

Kita perlu menetapkan kebenarannya supaya boleh ditulis, sila gunakan arahan berikut untuk melihat dan menukar kebenaran direktori:

docker exec -it mysql bash
chmod -R 777 /var/lib/mysql
exit
Salin selepas log masuk

Kemudian kita boleh memulakan semula bekas:

docker start mysql
Salin selepas log masuk

Selepas langkah di atas, Apabila kita memulakan bekas Mysql semula, ia boleh bermula dengan jayanya.

4. Ringkasan

Artikel ini menyediakan penyelesaian kepada kegagalan Docker untuk memulakan Mysql. Jika bekas Mysql gagal dimulakan, kita boleh mencari punca ralat dengan menyemak log kontena dan menyelesaikannya tepat pada masanya.

Atas ialah kandungan terperinci Bagaimana docker menyelesaikan masalah kegagalan untuk memulakan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan