Fungsi KATA LALUAN dalam Pelayan MySQL 8.0
Dalam Pelayan MySQL versi 8.0, fungsi KATA LALUAN berkelakuan berbeza daripada versi sebelumnya. Ini mungkin membawa kepada ralat semasa menggunakan fungsi, seperti yang ditunjukkan dalam soalan.
Ralat "Kod Ralat: 1064. Anda mempunyai ralat dalam sintaks SQL anda" menunjukkan bahawa pelayan MySQL menjangkakan sintaks yang berbeza untuk fungsi PASSWORD. Dalam versi MySQL sebelumnya, fungsi PASSWORD digunakan untuk menyulitkan kata laluan menggunakan algoritma pencincangan kata laluan lama. Walau bagaimanapun, dalam MySQL 8.0, algoritma ini telah ditamatkan dan digantikan dengan yang lebih selamat.
Untuk menangani isu ini, soalan menyediakan penyelesaian yang melibatkan penggunaan fungsi SHA1 dan CONCAT untuk menggantikan fungsi PASSWORD. Jawapannya mencadangkan menggunakan pertanyaan berikut sebagai alternatif:
<code class="SQL">SELECT CONCAT('*', UPPER(SHA1(UNHEX(SHA1('mypass')))))</code>
Pertanyaan ini menggabungkan asterisk (*) dengan perwakilan heksadesimal huruf besar bagi cincang SHA1 bagi cincang SHA1 bagi kata laluan input ('mypass') . Hasilnya adalah serupa dengan output fungsi PASSWORD dalam versi MySQL sebelumnya, menjadikannya pengganti yang sesuai untuk tujuan pengesahan.
Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Fungsi Kata Laluan dalam MySQL 8.0 untuk Pengesahan Kata Laluan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!