2011-03-02 3 views
0

mysql을 원격 서버에 액세스하고 데이터베이스를 생성하려고합니다. 퍼티를 사용하여 연결합니다.mysql 액세스가 거부되었습니다. ssh 데이터베이스 호스트

:mysql -p 
:mysql -u <username> -p 
. 
. 
. 

난 여전히 경고를 얻을 : 문제는 내가 내가 어떤 오류 "액세스 거부"얻을 것입니다.

ERROR 1045 (28000) : 액세스 @ 사용자 이름 '거부 (암호를 사용하지 : NO)'로컬 호스트 'ERROR 1045

가 (28000)이 : 액세스가 사용자 이름'에 대한 거부를 @ 'localhost를' (암호 사용 : 예)

암호를 입력하지 않을 때, 그리고 암호를 입력 할 때마다 하나씩.

답변

1

MySql에 대한 원격 액세스에 문제가 있습니다. here에서

  • 단계 # 1 : ssh를

첫째, 원격 MySQL 데이터베이스 서버에 ssh를 통해 로그인을 통해 로그인

  • 단계 # 2 : 사용은 일단

네트워킹 vi와 같은 텍스트 편집기를 사용하여 my.cfg라는 mysql 설정 파일을 편집해야한다. 데비안 리눅스 파일에서

/etc/mysql/my.cnf

# vi /etc/my.cnf 
  • 3 단계에 있습니다 : 일단

확인 라인은 생략 네트워킹이 있는지 확인 [mysqld를]과 같이 줄을 찾습니다, 파일 열기 주석 처리 (또는 줄을 지우고) 다음 줄을 추가하십시오.

bind-address=YOUR-SERVER-IP 

MySQL 서버의 IP 인 경우 xample, 172.20.5.2 다음 전체 블록은 다음과 같이해야합니다

[mysqld] 
user = mysql 
pid-file = /var/run/mysqld/mysqld.pid 
socket = /var/run/mysqld/mysqld.sock 
port = 3306 
basedir = /usr 
datadir = /var/lib/mysql 
tmpdir = /tmp 
language = /usr/share/mysql/English 
bind-address = 172.20.5.2 

# skip-networking 
.... 
.. 
.... 

경우 - 바인드 주소 : IP 주소에 바인딩. - skip-networking : TCP/IP 연결을 전혀 수신하지 마십시오. mysqld와의 모든 상호 작용은 유닉스 소켓을 통해 이루어져야한다. 이 옵션은 로컬 요청 만 허용되는 시스템에서 사용하는 것이 좋습니다. 원격 연결을 허용해야하기 때문에이 줄은 파일에서 제거하거나 주석 상태로 두어야합니다.

  • 4 단계 파일을 저장하고 닫습니다.
효과 원격 IP 주소

# /etc/init.d/mysql restart 
  • 5 단계 액세스 권한 부여 변경을 위해 MySQL의 서비스를 다시 시작

    # mysql을 -u 루트 -p mysql을

새 데이터베이스

당신이 162.54.10.20이 다음> 프롬프트 MySQL의에서 다음 명령을 입력해야합니다 사용자 표시 줄 및 원격 IP에 대한 foo는라는 새 데이터베이스에 추가 할 경우

:

mysql> CREATE DATABASE foo; 

mysql> GRANT ALL ON foo.* TO [email protected]'162.54.10.20' IDENTIFIED BY 'PASSWORD'; 

액세스 권한 부여 데이터베이스

기존에를

사용자 webadmin에 대해 webdb라는 데이터베이스에 대해 항상 162.54.10.20이라는 원격 IP에서 연결하고 있다고 가정하고이 IP 주소에 대한 액세스 권한을 부여해야합니다. MySQL의에서> 기존 데이터베이스에 대해 다음 명령 프롬프트 :

mysql> update db set Host='162.54.10.20' where Db='webdb'; 

mysql> update user set Host='162.54.10.20' where user='webadmin'; 
  • 단계 # 6 : MySQL의
  • 의 로그 아웃

exit를 입력하여 명령

mysql> exit 
  • 단계 # MySQL의 로그 아웃하기 7 : 테스트하기
원격 시스템 유형 명령에서

$ mysql -u webadmin –h 172.20.5.2 –p 

또한 내가 ''루트 '@'다시 거부 localhost'`를 얻을 5 단계에서 테스트 목적

$ telnet 172.20.5.2 3306 
+1

에 대해 포트 3306에 연결하기 위해 텔넷을 사용할 수 있습니다./etc/hostname = localhost. 내가 놓친 게 있니? –

관련 문제