Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana docker menyelesaikan masalah kegagalan untuk memulakan mysql

Bagaimana docker menyelesaikan masalah kegagalan untuk memulakan mysql

PHPz
PHPzasal
2023-03-31 18:20:256574semak imbas

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

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

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

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

2. Lihat log kontena

docker logs mysql

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

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

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

"DataDir": "/var/lib/mysql"

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

Kemudian kita boleh memulakan semula bekas:

docker start mysql

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!

Kenyataan:
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