Rumah > Artikel > pangkalan data > Bagaimana untuk menyelesaikan ralat ERROR 1064 (42000) yang dilaporkan oleh MySQL semasa pemberian
Kebanyakan kaedah geran yang terdapat di Internet akan melaporkan ralat Sebab utama ialah kaedah asal tidak lagi boleh digunakan selepas MySQL versi 8.0
Pelaporan ralatRALAT 1064. (42000): Anda mempunyai ralat dalam sintaks SQL anda, semak manual yang sepadan dengan versi pelayan MySQL anda untuk sintaks yang betul untuk digunakan berhampiran 'dikenal pasti oleh '123456' di baris 1
Betul kaedah pemberianSELECT version();grant all privileges on test.* to test@'%' identified by '123456';create user test@'localhost' identified by '123456';kata laluan MySQL8.0 tidak boleh log masuk
grant all privileges on test.* to test@'localhost';
Tambahan: MySQL ERROR 1064 (42000) ——Grant sentiasa melaporkan ralat yang berlaku walau apa cara sekalipun, pada?
Rakan yang telah menggunakan MySQL tahu bahawa selalunya terdapat beberapa operasi geran (kebenaran) Saya tertanya-tanya jika anda mengalami masalah sedemikian.RALAT 1064 (42000): Anda mempunyai ralat dalam sintaks SQL anda, semak manual yang sepadan dengan versi pelayan MySQL anda untuk sintaks yang betul untuk digunakan berhampiran ‘dikenal pasti oleh ‘123456’’ ; pada baris 1
MySQL grant SQLditampal ke terminal dan dilaksanakan,
melaporkan ralat!
Selepas menaip setiap huruf, ia akan dilaksanakan,
ralat lain akan dilaporkan! Berulang kali mengesahkan pelaksanaan berkali-kali, dan melaporkan ralat sekali lagi!
Saya menjadi gila, apa yang perlu saya lakukan? Jangan risau, teruskan membaca artikel tersebut.
Versi yang berbeza menyebabkan
flush privileges;Laporkan ralat2 >
alter user test@'localhost' identified with mysql_native_password by '123456';
Berjaya.
Rakan-rakan yang prihatin, adakah anda perasan bahawa terdapat mesej dalam hasil yang dikembalikan: 1 amaran, apakah itu?
mysql> grant all privileges on test.* to test@'%' identified by '123456'; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by '123456'' at line 1
Ternyata dalam MySQL 5.7, pegawai itu mengingatkan bahawa sintaks SQL ini akan ditamatkan.
Pelaksanaan geran yang betul
Jadi dalam MySQL versi 8.0 dan lebih baru, bagaimanakah kita melaksanakan geran dengan betul?
Buat pengguna dahulu dan kemudian berikan kebenaran.mysql> grant all privileges on test.* to test@'%' identified by '123456'; Query OK, 0 rows affected, 1 warning (0.08 sec) mysql> flush privileges;
Adalah disyorkan untuk menggunakan kaedah ini untuk memberikan kebenaran dalam penggunaan masa hadapan, kerana ia juga terpakai untuk MySQL versi 5.7, dan kaedah rasmi penciptaan pengguna satu klik dan pemberian kebenaran telah ditinggalkan .
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat ERROR 1064 (42000) yang dilaporkan oleh MySQL semasa pemberian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!