source

ERROR 1130 (HY000):호스트 "는 이 MySQL 서버에 연결할 수 없습니다.

manysource 2022. 11. 14. 21:48

ERROR 1130 (HY000):호스트 "는 이 MySQL 서버에 연결할 수 없습니다.

왜 mysql에 접속할 수 없는 거죠?

mysql -u root -ptest101 -h xxx.xxx.xxx.xxx
ERROR 1130 (HY000): Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server

my.cnf에는 다음과 같은 항목이 있습니다.

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address        = 0.0.0.0

아래도 살펴봤는데...

'UPDATE mysql.user SET Password = PASSWORD('test101') WHERE User = 'root';
FLUSH PRIVILEGES;

mysql -u root -ptest101을 사용하여 호스트 시스템에 액세스할 수 있지만 mysql -u root -ptest101 -h xxx.xxx.xxx을 사용하지 않습니다.xxx

와... 왜 이런 일이 생기는 거죠?저는 nubuntj 12.04 입니다.

mysql> SELECT host FROM mysql.user WHERE User = 'root';
+---------------------------------------------+
| host                                        |
+---------------------------------------------+
| %                                           |
| 127.0.0.1                                   |
| ::1                                         | |
| localhost                                   |
+---------------------------------------------+
5 rows in set (0.00 sec)

당신의.root이 문장은 모든 계정에 적용되며 localhost 액세스(권장)로만 추가될 수 있습니다.

이것은, 다음의 방법으로 확인할 수 있습니다.

SELECT host FROM mysql.user WHERE User = 'root';

결과만 표시되는 경우localhost그리고.127.0.0.1외부 소스에서는 접속할 수 없습니다.접속처가 아닌 다른 IP 주소가 표시되어 있는 경우는, 그것도 표시입니다.

액세스를 허용하는 각 시스템의 IP 주소를 추가한 후 권한을 부여해야 합니다.

CREATE USER 'root'@'ip_address' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'ip_address';

보시면%그렇다면 '원격 소스'라는 또 다른 문제가 있습니다.루트 경유로 접속하는 시스템이 있는 경우는,%와일드카드:

CREATE USER 'root'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

마지막으로 권한을 새로고침하면 다음과 같이 원격접속이 가능합니다.

FLUSH PRIVILEGES;

다음 두 가지 단계를 수행하면 완벽하게 잘 작동했습니다.

  1. 파일에서 바인드 주소를 코멘트 아웃합니다./etc/mysql/my.cnf:

    #bind-address = 127.0.0.1

  2. phpMyAdmin에서 다음 쿼리를 실행합니다.

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; FLUSH PRIVILEGES;

$mysql -u root --host=127.0.0.1 -p

mysql>use mysql

mysql>GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'redhat@123';

mysql>FLUSH PRIVILEGES;

mysql> SELECT host FROM mysql.user WHERE User = 'root';

mysql> 사용자 생성 'name'@'%'는 'pass'로 식별됩니다.Word'; Query OK, 영향을 받는 행은 0.00초입니다.

mysql> GRANT ALL PRIVALES ON. TO 'name'@%', 쿼리 OK, 0행 (0.00초)

mysql> FLUSH PRIVICEES; 쿼리 OK, 영향을 받는 행은 0.00초입니다.

mysql >

  1. 이름과 %가 맞는지 확인합니다.
  2. 실행 중인 방화벽에 포트 3306이 추가되었는지 확인합니다(다만, 다른 에러 메세지가 표시됩니다).

이게 누군가에게 도움이 되길...

cpanel에 접속할 수 있는 사람에게는, 그것을 회피하는 보다 간단한 방법이 있습니다.

  1. 데이터베이스 섹션에서 cpanel = > "원격 MySQL"에 로그인합니다.

  2. 액세스 하고 있는 IP/호스트명을 추가합니다.

  3. 완료!!!

PhpMyAdmin으로 이동하여 원하는 데이터베이스를 클릭한 후 Privilages 탭으로 이동하여 새 사용자 "remote"를 생성하고 모든 권한과 호스트 필드 설정 옵션(%)을 제공합니다.

이 오류를 쉽게 해결할 수 있는 방법이 있다

해 주세요.C:\xampp\mysql\data\mysql

on으로 .C:\xampp\mysql\backup\mysql

언급URL : https://stackoverflow.com/questions/19101243/error-1130-hy000-host-is-not-allowed-to-connect-to-this-mysql-server