[mysql] mysql에 원격 연결을 허용하는 방법

로컬 컴퓨터에 MySQL Community Edition 5.5를 설치했으며 외부 소스에서 연결할 수 있도록 원격 연결을 허용하려고합니다.

어떻게해야합니까?



답변

MySQL에서는 기본적으로 허용됩니다.

기본적으로 비활성화되어있는 것은 원격 root액세스입니다. 이를 사용 가능하게하려면이 SQL 명령을 로컬로 실행하십시오.

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 FLUSH PRIVILEGES;

그리고 다음 줄을 찾아 파일 에서 주석 처리하십시오.my.cnf 일반적 /etc/mysql/my.cnf으로 Unix / OSX 시스템에 있습니다. 경우에 따라 파일 위치는 /etc/mysql/mysql.conf.d/mysqld.cnf)입니다.

Windows 시스템 인 경우 MySQL 설치 디렉토리에서 찾을 수 C:\Program Files\MySQL\MySQL Server 5.5\ 있습니다 my.ini. 일반적으로 파일 이름은 다음과 같습니다 .

라인 변경

 bind-address = 127.0.0.1

 #bind-address = 127.0.0.1

변경 사항을 적용 하려면 MySQL 서버 ( Unix / OSXWindows )를 다시 시작하십시오 .


답변

위의 모든 작업을 수행 한 후에도 여전히 root원격으로 로그인 할 수 없었지만 Telnetting to port 는 연결을 수락하고 3306있음을 확인했습니다 MySQL.

MySQL에서 사용자를 살펴보기 시작했고 암호가 다른 여러 루트 사용자 가 있음을 알았습니다 .

select user, host, password from mysql.user;

그래서에서 MySQL나는 루트에 대한 모든 암호를 설정 다시 나는 마지막으로 원격으로 로그인 할 수 있습니다 root.

use mysql;
update user set password=PASSWORD('NEWPASSWORD') where User='root';
flush privileges;


답변

내 경험에 대한 참고 사항 인이 경로 아래에서 구성 파일을 찾을 수 있습니다 /etc/mysql/mysql.conf.d/mysqld.cnf.

(나는이 길을 찾기 위해 한동안 고투했다)


답변

제 경우에는 cent OS에서 원격 mysql 서버에 연결하려고했습니다. 많은 솔루션 (모든 권한 부여, IP 바인딩 제거, 네트워킹 사용)을 거친 후에도 여전히 문제가 해결되지 않았습니다.

다양한 솔루션을 살펴보면서 iptables를 발견했는데 mysql 포트 3306이 연결을 수락하지 않는다는 것을 알게되었습니다.

다음은이 문제를 확인하고 해결 한 방법에 대한 작은 메모입니다.

  • 포트가 연결을 수락하는지 확인 :
텔넷 (mysql 서버 ip) [portNo]
  • 포트에서 연결을 허용하기 위해 ip 테이블 규칙 추가 :
iptables -A 입력 -i eth0 -p tcp -m tcp --dport 3306 -j 수락
  • 프로덕션 환경에서는 권장하지 않지만 iptables가 올바르게 구성되지 않은 경우 규칙을 추가해도 문제가 해결되지 않을 수 있습니다. 이 경우 다음을 수행해야합니다.
서비스 iptables 중지

도움이 되었기를 바랍니다.


답변

MySQL 사용자에 대한 와일드 카드 원격 액세스를 설정하려면 아래 언급 된 단계를 따르십시오.

(1) cmd를 엽니 다.

(2) C : \ Program Files \ MySQL \ MySQL Server 5.X \ bin 경로로 이동하여이 명령을 실행하십시오.

mysql -u 루트 -p

(3) 루트 비밀번호를 입력하십시오.

(4) 다음 명령을 실행하여 권한을 제공하십시오.

모든 비밀번호를 *. *에 부여하여 ‘비밀번호’로 식별 된 ‘USERNAME’@ ‘IP’에 부여하십시오.

USERNAME : MySQL 서버에 연결하려는 사용자 이름입니다.

IP : MySQL 서버에 대한 액세스를 허용하려는 공용 IP 주소.

비밀번호 : 사용 된 사용자 이름의 비밀번호입니다.

IP를 %로 대체하여 사용자가 모든 IP 주소에서 연결할 수 있습니다.

(5) 다음 명령에 따라 권한을 플러시하고 종료하십시오.

홍당무;

출구;
또는 \ q

여기에 이미지 설명을 입력하십시오


답변

MySQL 서버 프로세스가 127.0.0.1 또는 :: 1에서만 수신 대기중인 경우 원격으로 연결할 수 없습니다. 이 bind-address설정 /etc/my.cnf이 있으면 문제의 원인 일 수 있습니다.

또한 비 localhost사용자에게도 권한을 추가해야합니다 .


답변

MySQL을 설치했다면 brew실제로는 기본적으로 로컬 인터페이스에서만 수신합니다. 편집 필요 해결하려면 /usr/local/etc/my.cnf및 변경 bind-address에서 127.0.0.1*.

그런 다음를 실행하십시오 brew services restart mysql.