Bagaimana untuk menyelesaikan ralat ERROR 1064 (42000) yang dilaporkan oleh MySQL semasa pemberian

PHPz
Lepaskan: 2023-05-28 23:53:13
ke hadapan
3943 orang telah melayarinya

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 ralat

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' di baris 1

Betul kaedah pemberian
SELECT version();
Salin selepas log masuk
grant all privileges on test.* to test@'%' identified by '123456';
Salin selepas log masuk
create user test@'localhost' identified by '123456';
Salin selepas log masuk

kata laluan MySQL8.0 tidak boleh log masuk

grant all privileges on test.* to test@'localhost';
Salin selepas log masuk

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 SQL

ditampal 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

Pertama sekali, semak versi MySQL anda yang melaporkan ralat adalah 8.0 Anda tidak akan mendapat ralat dengan menghafal atau pun arahan menaip buta 5.7 biasanya digunakan paling banyak. Percaya atau tidak?

Uji dengan data sebenar

1 Cuba dengan MySQL 8.0 dahulu

flush privileges;
Salin selepas log masuk

Laporkan ralat

2 >
alter user test@'localhost' identified with mysql_native_password by '123456';
Salin selepas log masuk

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

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

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!

Label berkaitan:
sumber:yisu.com
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