Dalam beberapa tahun kebelakangan ini, teknologi kontena Docker semakin banyak digunakan dalam pelbagai senario aplikasi Ia menyediakan kaedah penggunaan dan pengurusan yang ringan, pantas, menjadikan pembangunan dan operasi serta penyelenggaraan aplikasi lebih cekap. Apabila menggunakan teknologi kontena Docker, kami mungkin menghadapi beberapa masalah, seperti kegagalan kebenaran MySQL dalam bekas. Artikel ini menerangkan cara menyelesaikan masalah ini.
Kegagalan keizinan MySQL dalam bekas Docker boleh menyebabkan isu seperti penafian akses Keadaan ini biasanya disebabkan oleh kebenaran pengguna tidak ditetapkan dengan betul dalam bekas. Dalam bekas Docker, terdapat dua kaedah utama untuk kebenaran pengguna MySQL: kebenaran berasaskan kata laluan dan kebenaran berasaskan pemalam pengesahan.
Keizinan berasaskan kata laluan
Dalam kebenaran berasaskan kata laluan, pengguna MySQL perlu membuat kata laluan akaun dalam bekas dan menggunakan kelayakan ini untuk kebenaran apabila mengakses bekas dari luar. Akaun MySQL boleh dibuat dengan mengikuti langkah berikut:
Pertama, kita perlu memasukkan pelayan MySQL dalam bekas , yang boleh dilakukan dengan perintah berikut Pelaksanaan:
docker exec -it mysql-container mysql -u root -p
Arahan ini akan memulakan terminal interaktif dan menyambung ke pelayan MySQL dalam bekas.
Dalam terminal MySQL, anda boleh mencipta pengguna baharu menggunakan arahan berikut:
CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';
di mana 'newuser ' is new Nama pengguna pengguna, '%' bermaksud pengguna boleh diakses dari mana-mana alamat IP, 'kata laluan' ialah kata laluan pengguna baharu.
Begitu juga, dalam terminal MySQL, anda boleh menggunakan arahan berikut untuk membenarkan pengguna baharu:
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';
Perintah ini akan memberikan Pengguna baharu mempunyai akses kepada semua pangkalan data dan jadual.
Akhir sekali, agar perubahan itu berkuat kuasa, kita perlu memuat semula kebenaran:
FLUSH PRIVILEGES;
Kini, pengguna baharu telah berjaya dibuat dan Kebenaran membenarkan bekas MySQL diakses secara luaran menggunakan nama pengguna dan kata laluannya.
Keizinan berasaskan pemalam pengesahan
Dalam kebenaran berasaskan pemalam pengesahan, pelayan MySQL menggunakan pemalam pengesahan luaran untuk pengesahan pengguna, seperti menggunakan sijil SSL, Kerberos, dsb. ., untuk lebih selamat Sahkan pengguna. Dalam bekas Docker, pemalam pengesahan boleh disediakan menggunakan langkah berikut:
Untuk menggunakan pemalam pengesahan, kita perlu memasang pemalam ke dalam pelayan MySQL dalam bekas Docker. Ini boleh dicapai dengan langkah berikut:
docker cp auth_plugin.so mysql-container:/usr/lib/mysql/plugin/
Arahan ini menyalin fail plugin auth_plugin.so ke direktori /usr/lib/mysql/plugin/ dalam bekas.
Kemudian, kita perlu mendayakan pemalam dalam fail konfigurasi MySQL. Fail konfigurasi boleh diubah suai dengan arahan berikut:
docker exec -it mysql-container bash vi /etc/mysql/my.cnf
Dalam bahagian yang mendayakan pemalam pengesahan, anda perlu menambah baris berikut:
[mysqld] plugin-load = auth_plugin.so
Dalam terminal MySQL, kita perlu mencipta pengguna berasaskan pemalam, yang boleh dicapai dengan arahan berikut:
CREATE USER 'newuser'@'%' IDENTIFIED WITH auth_plugin AS 'cred';
Di mana, 'pengguna baharu' ialah nama pengguna pengguna baharu, dan '%' mewakili Pengguna boleh mengakses dari mana-mana alamat IP, 'kred' ialah rentetan yang disulitkan kelayakan yang digunakan untuk mengesahkan pengguna apabila menggunakan pemalam.
Begitu juga, dalam terminal MySQL, kita perlu memberi kebenaran kepada pengguna baharu menggunakan arahan berikut:
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';
Perintah ini akan Memberi akses pengguna baharu kepada semua pangkalan data dan jadual.
Akhir sekali, kami perlu menyegarkan semula kebenaran:
FLUSH PRIVILEGES;
Kini, pengguna berasaskan pemalam telah berjaya dibuat dan dibenarkan, dan Bekas MySQL boleh diakses secara luaran menggunakan kelayakannya.
Ringkasan
Dalam bekas Docker, kegagalan kebenaran MySQL boleh menyebabkan masalah seperti penafian akses. Artikel ini memperkenalkan dua kaedah kebenaran pengguna MySQL: kebenaran berasaskan kata laluan dan kebenaran berasaskan pemalam pengesahan. Tidak kira kaedah mana yang digunakan, kebenaran pengguna perlu disediakan dengan betul untuk mengakses pelayan MySQL dalam bekas dari luar.
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika keizinan mysql bekas docker gagal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!