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 / OSX 및 Windows )를 다시 시작하십시오 .
위의 모든 작업을 수행 한 후에도 여전히 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을 설치 한 경우 brew
기본적으로 로컬 인터페이스에서만 수신 대기합니다. 편집 필요 해결하려면 /usr/local/etc/my.cnf
및 변경 bind-address
에서 127.0.0.1
에 *
.
그런 다음를 실행하십시오 brew services restart mysql
.
MySQL 서버 프로세스가 127.0.0.1 또는 :: 1에서만 수신 대기중인 경우 원격으로 연결할 수 없습니다. 이 bind-address
설정 /etc/my.cnf
이 있으면 문제의 원인 일 수 있습니다.
또한 비 localhost
사용자에게도 권한을 추가해야합니다 .
방화벽 서비스가 실행중인 경우 방화벽 포트 3306도 열려 있는지 확인하십시오.
참고로 몇 시간 동안이 문제로 머리카락을 뽑았습니다. 마침내 호스팅 업체에 전화를 걸어 1and1의 제어판에서 클라우드 서버를 사용하는 경우 방화벽을 추가하고 포트를 추가 해야하는 보조 방화벽이 있음을 발견했습니다 3306. 추가되면 곧바로 ..
이 블로그 로컬 영역 네트워크에서 MySQL 서버를 설정하는 방법MySQL
은 처음부터 설정하는 데 유용합니다
그리고 OS X 사용자의 경우 bind-address 매개 변수는 일반적으로 my.ini 파일이 아니라 시작된 plist에 설정됩니다. 그래서 내 경우에는에서 제거 <string>--bind-address=127.0.0.1</string>
했습니다 /Library/LaunchDaemons/homebrew.mxcl.mariadb.plist
.
경우 mysqld
가지고 바인딩 어드레스 루프백 / 로컬 어드레스 (예로 세트 127.0.0.1
) 루프백 인터페이스가 원격 호스트에 도달 할 수 없기 때문에, 서버는 원격 호스트로부터 도달 할 수 없다.
한 인터페이스에서 연결 만 허용하려는 경우 모든 호스트 또는 다른 외부 도달 가능 주소로의 연결을 허용 하려면이 옵션을 0.0.0.0
( ::
IPv4 + 6의 경우)로 설정하십시오 .
때로는 Windows에서 PC의 이름 을 사용해야 합니다
첫 번째 단계) mysql의 구성 파일에 넣으십시오.
mysqld.cnf SET 바인드 주소 = 0.0.0.0
(tcp / ip를 통한 연결을 허용하기 위해)
두 번째 단계) MySQL이 아닌 테이블 사용자 를 Windows 속성 의 PC 이름으로 IP가 아닌 사용자로 설정하십시오.
참고 URL : https://stackoverflow.com/questions/14779104/how-to-allow-remote-connection-to-mysql
'Programing' 카테고리의 다른 글
몽구스에서 문서를 어떻게 업데이트 / 업데이트합니까? (0) | 2020.03.06 |
---|---|
jquery 변경 클래스 이름 (0) | 2020.03.06 |
C #에서 문자열 암호화 및 암호 해독 (0) | 2020.03.06 |
이름으로 쿠키 받기 (0) | 2020.03.06 |
문자열 목록을 초기화하는 방법 (목록 (0) | 2020.03.06 |