>  기사  >  데이터 베이스  >  Grant에서 MySQL이 보고한 오류 ERROR 1064(42000)를 해결하는 방법

Grant에서 MySQL이 보고한 오류 ERROR 1064(42000)를 해결하는 방법

PHPz
PHPz앞으로
2023-05-28 23:53:133934검색

인터넷에 있는 대부분의 grant 메소드는 오류를 보고합니다. 주된 이유는 MySQL 버전 8.0 이후에는 원래 메소드를 더 이상 사용할 수 없기 때문입니다.

MySQL 버전을 쿼리하려면

SELECT version();

버전 8.0에서

grant all privileges on test.* to test@'%' identified by '123456';

오류는 다음과 같습니다. 보고됨

ERROR 1064(42000): SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 설명서에서 라인 1

의 '123456으로 식별됨' 근처에서 사용할 올바른 구문을 확인하세요. grant way

create user test@'localhost' identified by '123456';
grant all privileges on test.* to test@'localhost';
flush privileges;

MySQL8.0 비밀번호 로그인 최대

alter user test@'localhost' identified with mysql_native_password by '123456';

추가됨: MySQL 오류 1064(42000) - Grant는 무슨 일이 있어도 항상 오류를 보고합니다. 무슨 일이 일어나고 있나요?

MySQL을 사용해 본 친구들은 종종 승인(승인) 작업이 있다는 것을 알고 있습니다.

ERROR 1064(42000): SQL 구문에 오류가 있습니다. 1행

에서 ‘‘123456’으로 식별됨’ 근처에서 사용할 올바른 구문은 해당 MySQL 서버 버전을 확인하세요.

MySQL grant SQL

터미널에 붙여넣고 실행하면 오류가 발생합니다!
한 글자씩 입력하면 실행되고, 또 오류가 보고됩니다!
수차례 확인과 실행을 반복했는데, 또다시 오류가 나왔어요!

미칠 것 같은데 어떡하지? 걱정하지 말고 기사를 계속 읽으십시오.

버전 차이로 인한 원인

먼저 MySQL 버전을 먼저 확인하세요. 오류를 보고하는 MySQL 버전은 대부분 8.0입니다. 일반적으로 암기하거나 블라인드 타이핑 명령을 사용해도 오류가 보고되지 않는 것으로 추정됩니다. 5.7. 믿거 나 말거나?

실제 데이터로 테스트

1. 먼저 MySQL 8.0에서 시도해보세요

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

오류가 발생했습니다

2. MySQL 5.7에서 다시 시도해보세요

mysql> grant all privileges on test.* to test@'%' identified by '123456';    
Query OK, 0 rows affected, 1 warning (0.08 sec)
mysql> flush privileges;

성공.

주의 깊은 친구 여러분, 반환된 결과에 경고 1개, 무엇입니까?라는 메시지가 있다는 것을 눈치채셨나요?

mysql> show warnings;
+---------+------+------------------------------------------------------------------------------------------------------------------------------------+
| Level   | Code | Message                                                                                                                            |
+---------+------+------------------------------------------------------------------------------------------------------------------------------------+
| Warning | 1287 | Using GRANT for creating new user is deprecated and will be removed in future release. Create new user with CREATE USER statement. |
+---------+------+------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

MySQL 5.7에서는 공식적으로 이 SQL 구문이 더 이상 사용되지 않을 것임을 상기시켰습니다.

Grant의 올바른 실행

MySQL 버전 8.0 이상에서는 어떻게 Grant를 올바르게 실행합니까?

먼저 사용자를 생성한 후 권한을 부여하세요.

mysql> create user test@'localhost' identified by '123456';
Query OK, 0 rows affected (0.10 sec)

mysql> grant all privileges on test.* to test@'localhost';
Query OK, 0 rows affected (0.17 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.18 sec)

MySQL 버전 5.7에도 적합하고 공식 방식에서는 원클릭 사용자 생성 및 권한 부여 방식을 포기했기 때문에 향후 사용 시 권한 부여를 위해 이 방식을 사용하는 것이 좋습니다.

위 내용은 Grant에서 MySQL이 보고한 오류 ERROR 1064(42000)를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제