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!