호스트 'xxx.xx.xxx.xxx'는 이 MySQL 서버에 연결할 수 없습니다.

아주 간단해야 하는데, 도저히 작동이 안 되네요.
MySQL 서버에 원격으로 연결하려고 합니다.

연결

mysql -u root -h localhost -p  

로 연결하면 잘 작동하지만

mysql -u root -h 'any ip address here' -p

을 시도하면 오류와 함께 실패합니다.

ERROR 1130 (00000): Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server

mysql.user` 테이블에 호스트가 'localhost'인 사용자 'root'에 대한 항목과 호스트가 '%'인 다른 항목이 정확히 동일합니다.

어떻게 해야 할지 모르겠습니다. 어떤 아이디어라도 환영합니다.

질문에 대한 의견 (1)
해결책

보안 예방 조치일 수 있습니다. 새 관리자 계정을 추가해 볼 수 있습니다:

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     WITH GRANT OPTION;

파스칼과 다른 사용자들이 지적했듯이 이런 종류의 액세스 권한을 가진 사용자가 모든 IP에 열려 있는 것은 좋은 생각이 아닙니다. 관리 사용자가 필요한 경우 root를 사용하고 로컬 호스트에 그대로 두세요. 다른 작업의 경우 필요한 권한을 정확히 지정하고 아래 파스칼이 제안한 대로 사용자의 접근 권한을 제한하세요.

편집:

MySQL FAQ에서 발췌한 내용입니다:

이유를 알 수없는 경우 액세스 거부, 사용자 제거 Host가 있는 모든 항목을 테이블로 만듭니다. 와일드 카드가 포함 된 값 (와일드 카드가 포함 된 항목 또는 '_' 문자를 포함하는 항목). A 매우 일반적인 오류는 Host = > 와 함께 새 Host='%' 및 User='some_user'로 새 항목을 삽입하는 것입니다. 로컬호스트를 다음과 같이 지정할 수 있습니다. 동일한 컴퓨터에서 연결하도록 지정할 수 있습니다. 하지만 이 작동하지 않는 이유는 다음과 같습니다. 기본 권한에 Host="로컬 호스트 Host='localhost' 및 사용자='''. 해당 항목에는 Host 값인 'localhost'가 있으므로, 이 항목은 'localhost'보다 보다 구체적이기 때문에, 이 항목은 새 항목에 대한 기본 설정으로 사용됩니다. 로컬 호스트에서 연결할 때! 올바른 올바른 절차는 두 번째 항목을 삽입하는 것입니다. Host='localhost' 및 User='some_user'로 두 번째 항목을 삽입하거나 Host='localhost' 및 User=''. 항목을 삭제한 후 다시 로드하려면 FLUSH PRIVILEGES 문을 실행하여 부여 테이블을 다시 로드합니다. 섹션 5.4.4, "액세스 제어, 1단계: 연결 확인"을 참조하십시오.

해설 (8)

새 MySQL 에서 다음과 같이 작성할 수 있다 '와' 한 '또는' 를 통해 사용자 지정 권한을 쿼리하지 프롬프트합니다 phpMyAdmin 명령 프롬프트:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;

CREATE USER 'username'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

4 번 모두 처리할 수 있는 ',' 사용자 이름과 암호를 접속하십시오 쿼리합니다 해야 합니다.

해설 (5)

오류 메시지는 & # 39 는 나의 것) 과, , # 39 이 mysql server* xxx 호스트입니다 연결할 수 없습니다. 비록 내가 스크립트루트 사용하고 있었습니다. # 39 의 루트 권한이 있는지 확인하기 위해 here& 어떻게 있다.

  • 내 setup*을:

우분투 14.04 LTS - Mysql v5.5.37 -

  • 솔루션 *
  1. 39, & # 39 에서 해당 파일을 열고 etc/mysql/my.cnf&.

  2. 확인합니다.
  • 포트 (port = # 39, & # 39 이것은 기본적으로 3306&;)
  • 바인딩하지 주소 (# 39, & # 39 이것은 기본적으로 바인딩하지 주소 = 127.0.0.1&;; 이 경우 모든 그럼 그냥 여시겠다고요 설명줄로 할말이다 내 acrobatconnectcentral. I& # 39, ll 말하도다 실제 서버 켜있을 10.1.1.7)
  1. 이제 액세스하려면 MySQL 데이터베이스에 대한 실제 서버 (말하도다 너회의 원격입니다 # 39, & # 39 123.123.123.123 dell. 포트 주소는 3306 사용자로 root&. # 39, & # 39, 데이터베이스에 대한 권한만으로 변경하십시오 dataentry& 보고 싶습니다. 반드시 변경하십시오 IP 주소, 포트, 그리고데이터베이스 이름을 설정)

mysql root - u - p 암호 입력: &lt 입력하십시오. password>;

39 의 모든 mysql&gt 허가합니다 .을 root@& 123.123.123.123& # 39;;; # 39, & # 39 식별됩니다 put-your-password&;;

플러시합니다 권한을 mysql>; 종료하십시오 mysql&gt.

  1. sudo 서비스 mysqld 재시작해야
  2. 이제 원격입니다 데이터베이스에 접속할 수 있다. 예를 들어, # 39, & # 39 의 m, 전면에 내세우는 I& 사용하여, & # 39, MySQL 워크벤치 Hostname:10.1.1.7& # 39, & # 39,, # 39 Port:3306& Username:root& # 39.
해설 (4)

임의의 호스트 준비되기까지 부여하십시오 액세스하십시오 합니다.

그것은 여분이라일러라 추가했는지 phpmyadmin 에서 새 권한

Goto 권한을 &gt. 새 사용자 추가

enter 이미지 여기에 설명을!

필요한 모든 호스트에 대해 일부 sername

enter 이미지 여기에 설명을!

해설 (1)

그냥 다음 단계를 수행합니다.

  1. 접속되어야 mysql
mysql -uroot -p
  1. 사용자 생성
CREATE USER 'user'@'%' IDENTIFIED BY 'password';
  1. 권한 부여
 GRANT ALL PRIVILEGES ON \*.\* TO 'user'@'%' WITH GRANT OPTION;
  1. 권한을 플러시합니다
FLUSH PRIVILEGES;
해설 (2)

'*호스트 ''xxx.xx.xxx.xxx'' 이 MySQL 서버에 연결할 수 없습니다'라는 메시지는 MySQL 서버에서 MySQL 클라이언트로 보내는 응답입니다. 호스트 이름이 아닌 IP 주소를 반환하는 것을 주목하세요.

만약 mysql -h -u -p로 연결을 시도하는데 이 메시지가 IP 주소와 함께 반환된다면, MySQL 서버는 클라이언트에서 역방향 조회를 할 수 없습니다. 이는 MySQL 클라이언트를 보조금에 매핑하는 방식이므로 매우 중요합니다.

MySQL 서버에서 nslookup를 수행할 수 있는지 확인하세요. 그래도 작동하지 않으면 DNS 서버에 항목이 없는 것입니다. 또는 MySQL 서버의 HOSTS 파일에 항목을 넣을 수 있습니다(` ` - 여기서 순서는 중요하지 않을 수 있습니다).

제 서버의 호스트 파일에 MySQL 클라이언트를 역으로 조회할 수 있는 항목을 추가하여 바로 이 문제를 해결했습니다.

해설 (1)

INSERT, UPDATE 등을 사용하여 수동으로 권한 부여 테이블을 수정하는 경우에는 권한을 새로 고침` 문을 실행하여 서버에 부여 테이블을 다시 로드하도록 지시해야 합니다.

추신: 모든 호스트가 모든 사용자에 대해 연결하도록 허용하는 것은 권장하지 않습니다(특히 루트 용도가 아닌 경우). 클라이언트/서버 애플리케이션에 mysql을 사용하는 경우 서브넷 주소를 선호합니다. 웹 서버 또는 애플리케이션 서버에서 mysql을 사용하는 경우 특정 IP를 사용하세요.

해설 (0)

간단한 방법:

Grant All Privileges ON *.* to 'USER_NAME'@'%' Identified By 'YOUR_PASSWORD'; 

그럼

FLUSH PRIVILEGES;

완료!

해설 (2)

여기에 대답을 만드는 보여줄 수 있는 사용자는 대부분 2 개의 호스트 값: 하나씩 하나씩 로컬호스트 ',' 및 '%'.

39 와 같은 사용자 root 를 제외한 유념하십시오 내장현 로컬호스트 don&, t 이 작업을 수행해야 할 수 있습니다. 간단히 만들 수 있는 경우 새 사용자 어디서부터든 로그인하십시오 사용할 수 있습니다.

CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT  ON  TO myuser;

또 작동합니까 그냥 그랬다고. 이와 같은 다른 %s/dbase/ext_table. 언급한 it& # 39 의 모든 도메인 관리자 권한을 부여할 수 있는 끔찍한 아이디어가 준비되기까지.)

해설 (0)

39 의 GUI 툴을 제공하는 인터페이스입니다 MySql& 됩니다 (sql 요그):

클릭하여 사용자 관리자: ! [입력하십시오. 이미지 여기에 설명을] [1]

이제 스케쳐내 부여하십시오 액세스만 다른 원격 PC 에서 처럼 아래에 있는 이 사진을 보니, 그냥 smartupdate 호스트에서는 필드 값은 % (원하는거요 와일드카드)

! [입력하십시오. 이미지 여기에 설명을] [2]

해설 (0)

간단한 방법은 root 계정 mysql 데이터베이스, 테이블, 그 후 phpmyadmin 로그인하십시오 함께 이동 사용자 계정 및 호스트 필드이므로 좁히어 스크립트루트 편집하십시오 추가 % 와일드 카드. ssh 플러시합니다 권한을 거쳐

 FLUSH PRIVILEGES;
해설 (1)

그냥 더 나은 방법으로 찾을 수 있는 제어판 (I& # 39 m, 여기에 디르크태민 사용하여) 등을 얻을 수 있습니다.

단순히 gnu. orghttp://www. 타겟대상 서버 DB 에 제어판용, 내 사례: MySQL 관리 - &gt. 선택 &gt DB -; 찾으실 수 있습니다. 여기서 간단히 추가할 &quot, 액세스 Hosts&quot, 원격 호스트 및 그 apc® 지금이예요! ! [입력하십시오. 이미지 여기에 설명을] [1]

아마 다른 c 와 같은 옵션을 프레스카 패널 등 비슷한 게 있다.

39 m, 희망을 i& 전송되었기 도움됐네 너회들 너무.

해설 (0)

최근 mysql 설치 후 태그일 경우 단순히 다른 사항은요 시도하시겠습니까 변경하기 전에, 이 명령을 실행할 수 있습니다 다음 재시도하십시오:

flush privileges;

혼자 이런 문제가 해결됩니다 가져다줄래요 켜짐이 unbuntu 16.04, mysql 5.7.20. 이메프.

해설 (0)

그냥 잘 할 수 있는 오픈 미스크 l.cf그 파일이므로 바인딩하지 주소 너희는너희가 변경해야 하는 이

  • 바인딩하지 주소 = 127.0.0.1*

mysql 서버에 연결할 수 있는 이 후 재시작하여 됩니다.

이 아이디어를 갖고 있는 형태로 볼 수 있습니다.

이것은 진짜 sol

해설 (3)

Windows 에서 실행되는 경우 발생할 수 있습니다. Mysql 서버에 실행하십시오 간단한 해결책은 인스턴스입니다 구성 마법사입니다. 이것은 MYSQL 에 그룹의 시작 메뉴. On the second from the box 에서 원격 액세스 허용) 을 말하고, 마지막 화면 &quot 스크립트루트 machines".

해설 (0)

스파넬 솔루션이므로

Mysql gnu. orghttp://www. 스파넬 찾습니다. Ip 의 입력 필드를 추가합니다.

호스트 (와일드카드 사용할 수 있습니다 (%)

주석문입니다 기억할 수 있는 IP 는. 이는 it for me.

해설 (0)

누군가 이 문제가 발생할 가능성이 있는 오프하도록 평면가공 내에서 이 sql 요그 이 들어온넘:

난 이미 연결되었습니까 원격 데이터베이스 (sql 요그 내에서) 와 일부 시간 일했다. 이후 몇 분 후 부활하셨잖아요 시스템의 그냥 계속 내 업종에문제가 ! 오류 - 1130년 협력했습니다 아무것도아니야 찾았다. Sql 요그 didn& 재시작하기 # 39, t fix it. 그럼 난 아직 didn& 재시작했습니다 시스템 - # 39, 빗나갔다.

그래서 &solarisdvd 연결하든 털미널 - 된다고 했다. Sql 요그 어졌다면 재시도됨 it on. 또한 했다. # 39, & # 39, 내가 아닌 다른 컴퓨터 quirkiness& 무순서 can& t # 39, 딱히 설명할 수 있다고 하지만 난 누군가를 도와라.

해설 (0)

이 일하는 디르크태민 ,

  1. 디르크태민 검색하기를 데이터베이스에구성원을 ''.
  2. Mysql 검색하기를 데이터베이스에구성원을 '관리'.
  3. '데이터베이스' 를 선택합니다.
  4. 밑에 ',' 탭 아치세 호스트입니다 필드가 있습니다. 'Xxx.xx.xxx.xx' 에서 이 필드를 칠 합니다.
  5. 호스트 '에' 를 추가.

끝났습니다. 이제 이 '네' your_database_username &amp DB 에 접근할 수 있다. 'your_database_password'.

  • 그렇게 간단한! *
해설 (0)

이 답변이 누군가를 도와라.

그리고 난 이 모든 것을 알게 한 중요한 일은 내가 일부러 답을 도움말에서는 확인란 않았습니다. 포트:)

저는 mysql 에서 실행 중인 컨테이너 부두 노동자 실행되는 다른 포트. 난 내 호스트 시스템에 있는 포트 3306 가리키는 I have a mysql 서버 실행되는. 내 컨테이너입니다 서버의 포트 33060 노출합니다. 그래서 이 모든 시간을 보고 있었는데, 잘못된 서버! 도프!

해설 (0)
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

아마 이 오류가 없기 때문에, 이 때 비밀번호를 루트로부터의 수행됨 함께 연결하려는 외부에서.

해설 (0)