Docker ialah platform kontena sumber terbuka yang membantu pembangun membina, menggunakan dan menjalankan aplikasi dengan lebih mudah.
MySQL ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas dan salah satu imej paling popular di Docker Hub. Walau bagaimanapun, kadangkala apabila menjalankan MySQL dalam Docker, anda akan menghadapi beberapa masalah, seperti MySQL tidak dapat dilaksanakan.
Dalam artikel ini, kami akan meneroka sebab mengapa MySQL Docker tidak dilaksanakan dan cara menyelesaikannya.
Analisis sebab
Apabila menjalankan MySQL dalam Docker, anda mungkin mendapati pelayan MySQL tidak dipasang dengan betul. Ini mungkin disebabkan oleh bekas Docker tidak memuat turun imej MySQL dengan betul.
Untuk menyelesaikan masalah ini, anda boleh menggunakan arahan berikut untuk memuat turun imej MySQL:
docker pull mysql:latest
Malah jika pelayan MySQL dipasang dengan betul, Mungkin juga terdapat isu konfigurasi. Sebagai contoh, jika pelayan MySQL tidak dikonfigurasikan dengan betul, ia mungkin gagal dimulakan, mengakibatkan ketidakupayaan untuk melaksanakan.
Untuk menyelesaikan masalah ini, anda boleh menggunakan arahan berikut untuk memulakan pelayan MySQL di dalam bekas Docker:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -d mysql:tag
Di mana PASSWORD ialah kata laluan akar MySQL anda dan teg ialah teg versi MySQL yang anda mahukan untuk digunakan.
Apabila menjalankan pelayan MySQL dalam Docker, jika kebenaran direktori pelekap pangkalan data tidak dikonfigurasikan dengan betul, MySQL mungkin tidak dapat dilaksanakan.
Untuk menyelesaikan masalah ini, anda boleh menggunakan arahan berikut untuk memulakan bekas Docker dan mengkonfigurasi kebenaran direktori pelekap pangkalan data:
docker run --name mysql -v /your/data/dir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -d mysql:tag --default-authentication-plugin=mysql_native_password
Di mana, /your/data/dir ialah pangkalan data mount yang anda ingin konfigurasikan direktori, PASSWORD ialah kata laluan akar MySQL anda, dan teg ialah teg versi MySQL yang anda mahu gunakan.
Penyelesaian
Seperti yang dinyatakan sebelum ini, jika imej MySQL tidak dipasang dengan betul, MySQL mungkin tidak melaksanakan . Anda boleh menggunakan arahan berikut untuk menyemak sama ada imej MySQL dipasang dengan betul:
docker images | grep mysql
Jika terdapat rentetan mysql dalam output, imej MySQL dipasang dengan betul.
Jika anda menggunakan teg versi MySQL yang tidak disokong, ia mungkin menyebabkan MySQL tidak dapat dilaksanakan. Untuk menyelesaikan isu ini, anda boleh melihat teg versi yang tersedia pada masa ini menggunakan arahan berikut:
docker search mysql
Kemudian, mulakan bekas MySQL dengan teg versi yang disokong.
Jika pelayan MySQL tidak dimulakan, tiada pertanyaan boleh dilaksanakan. Untuk menyemak sama ada pelayan MySQL berfungsi dengan betul, anda boleh menggunakan arahan berikut:
docker ps -a
Jika bekas MySQL tidak berjalan, anda boleh menggunakan arahan berikut untuk memulakan bekas MySQL:
docker start mysql
Jika direktori pelekap pangkalan data bekas MySQL tidak dikonfigurasikan dengan betul, pelaksanaan akan gagal. Anda boleh menggunakan arahan berikut untuk menyemak sama ada direktori pelekap pangkalan data dikonfigurasikan dengan betul:
docker inspect mysql
Jika direktori pelekap pangkalan data tidak dikonfigurasikan dengan betul, anda boleh menggunakan arahan berikut untuk memulakan semula bekas MySQL:
docker stop mysql docker rm mysql docker run --name mysql -v /your/data/dir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -d mysql:tag --default-authentication-plugin=mysql_native_password
Di mana, / your/data/dir ialah direktori pelekap pangkalan data yang ingin anda konfigurasikan, PASSWORD ialah kata laluan akar MySQL anda dan teg ialah teg versi MySQL yang anda mahu gunakan.
Kesimpulan
Menghadapi masalah bukan pelaksanaan semasa menjalankan Docker MySQL mungkin mempunyai pelbagai sebab, termasuk pemasangan pelayan MySQL yang salah, konfigurasi pelayan yang salah, isu kebenaran, dsb. Untuk menyelesaikan isu ini, anda boleh menggunakan penyelesaian yang disediakan dalam artikel ini. Pada masa yang sama, adalah perlu untuk memberi perhatian kepada pembelajaran dan amalan teknologi kontena dan memupuk keupayaan teknikal profesional untuk menggunakan Docker dengan lebih baik untuk membina persekitaran pembangunan perisian anda sendiri.
Atas ialah kandungan terperinci docker mysql tidak dilaksanakan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!