Rumah > Operasi dan penyelenggaraan > Docker > Apa yang perlu dilakukan jika keizinan mysql bekas docker gagal

Apa yang perlu dilakukan jika keizinan mysql bekas docker gagal

PHPz
Lepaskan: 2023-04-18 10:01:41
asal
828 orang telah melayarinya

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:

  1. Masukkan pelayan MySQL dalam bekas Docker

Pertama, kita perlu memasukkan pelayan MySQL dalam bekas , yang boleh dilakukan dengan perintah berikut Pelaksanaan:

docker exec -it mysql-container mysql -u root -p
Salin selepas log masuk

Arahan ini akan memulakan terminal interaktif dan menyambung ke pelayan MySQL dalam bekas.

  1. Buat pengguna baharu

Dalam terminal MySQL, anda boleh mencipta pengguna baharu menggunakan arahan berikut:

CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';
Salin selepas log masuk

di mana 'newuser ' is new Nama pengguna pengguna, '%' bermaksud pengguna boleh diakses dari mana-mana alamat IP, 'kata laluan' ialah kata laluan pengguna baharu.

  1. Izinkan pengguna baharu

Begitu juga, dalam terminal MySQL, anda boleh menggunakan arahan berikut untuk membenarkan pengguna baharu:

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';
Salin selepas log masuk
Salin selepas log masuk

Perintah ini akan memberikan Pengguna baharu mempunyai akses kepada semua pangkalan data dan jadual.

  1. Muat Semula Kebenaran

Akhir sekali, agar perubahan itu berkuat kuasa, kita perlu memuat semula kebenaran:

FLUSH PRIVILEGES;
Salin selepas log masuk
Salin selepas log masuk

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:

  1. Pasang pemalam ke dalam bekas MySQL

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/
Salin selepas log masuk

Arahan ini menyalin fail plugin auth_plugin.so ke direktori /usr/lib/mysql/plugin/ dalam bekas.

  1. Dayakan pemalam

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
Salin selepas log masuk

Dalam bahagian yang mendayakan pemalam pengesahan, anda perlu menambah baris berikut:

[mysqld]
plugin-load = auth_plugin.so
Salin selepas log masuk
  1. Buat pengguna

Dalam terminal MySQL, kita perlu mencipta pengguna berasaskan pemalam, yang boleh dicapai dengan arahan berikut:

CREATE USER 'newuser'@'%' IDENTIFIED WITH auth_plugin AS 'cred';
Salin selepas log masuk

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.

  1. Beri kebenaran kepada pengguna baharu

Begitu juga, dalam terminal MySQL, kita perlu memberi kebenaran kepada pengguna baharu menggunakan arahan berikut:

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';
Salin selepas log masuk
Salin selepas log masuk

Perintah ini akan Memberi akses pengguna baharu kepada semua pangkalan data dan jadual.

  1. Kebenaran Segar Semula

Akhir sekali, kami perlu menyegarkan semula kebenaran:

FLUSH PRIVILEGES;
Salin selepas log masuk
Salin selepas log masuk

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!

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