도커 컨테이너는 호스트 액세스 MySQL 데이터베이스 서버 내에서 문제를 해결하기 위해

너무 많이 설명하기 너무 게으른, 나는 두려워 문제, 요약 레코드의 다음과 같은 방법, 간단한 불구하고 있지만, 전체를 해결하는 것입니다, 다른 아이들은 사람의 문제가 발생하기 위해, 둘째, 공유의 정신에 맞춰 하루의 대부분을 보냈다의 문제를 해결하기 위해 기념, 물론,이 방법은 반드시 문제가 해결되지 않지만, 얼마나 많은 일부 솔루션의 아이디어를 제공 할 수 있습니다.

첫째, 방화벽을 확인, 일반적으로는 아무 문제가 없어야합니다

(문제가있을 때 나는이 규칙이 제거 넣어 영향을 찾을 수 없습니다, 그래서 용기, 그것은 방화벽의 문제를 해결 한 고정 표시기 수 있지만, 다른 사람들이이 문제를 배제하지 않는다.)
규칙을 추가

3306 포트, 데이터베이스의 보안을 보장하기 위해 특정 어드레스 오픈 어느정도 
iptables는 (가) -I 입력이 -s 172.17을 . 0.2 -p TCP --dport 3306 - J는 ACCEPT 
현재 룰 도시 
의 iptables를 - 저장에게 
파일 규칙 출력 
의 iptables - 저장> iptables에있다. rules.backup 
효과 걸릴 현재 방화벽 규칙에 수출되는 파일에 스릴 
의 iptables는 iptables.rules.backup <-RESTORE

 

사용자가 원격 데이터베이스의 IP 주소에 연결할 수 있도록 둘째, 바인딩 구성을 주석, MySQL의 설정 파일을 수정 한 후 루트 사용자의 호스트 레코드에 데이터베이스 사용자 테이블을 추가
로 인한 문제를 :
MySQL의 서버에 연결할 수 없음의 (111 "연결이 거부 됨")
해결 :

MySQL 데이터베이스는 자신의 설정 파일을 찾아 편집 할 수
/etc/mysql/mysql.conf.d# VI mysqld.cnf
127.0.0.1 댓글을 달았 바인딩

원격 연결을 연 후, 두 번째 질문이있을 것이다 :
"호스트하는 '172.17.0.2'는이 MySQL 서버에 연결할 수 없습니다"

해결 방법 :
데이터베이스에 대한 루트 액세스는, 아래 두 줄을 수행
에 대한 모든 권한을 부여 * * 옵션 부여 ;.와 'PSWD'식별 'root'@'172.17.0.2'에
(PSWD에 루트로 루트에 대한 모든 권한을 열고, 반드시 루트 암호가 모든 데이터베이스가 암호 (* * 현장에서 만 암호와 같은 특정 데이터베이스의 특정 테이블에 변경 될 수 있습니다) 테이블에서 모든 조작을 할 수 있도록 172.17.0.2에서 시간을 로그인,이 랜덤).

플러시 특권;
새로 고침

데이터베이스를 다시 시작
정지 /etc/init.d/mysql 형태
/etc/init.d/mysql 형태 시작


시간 후 고정 표시기에서 데이터베이스에 액세스 할 수있게됩니다
~ / 텔넷 172.17.0.1 # 3306 백엔드 : 루트 @의 2395caf9da2b
172.17.0.1을 시도 ...
172.17.0.1에 연결된를.
'^]'있는 문자를 탈출.


그 결과, 그 특권만을 공개 IP 주소입니다

온라인 아이는 순서의 변경을 제공하는 많은 선의의 친구가 있습니다에 * * '루트'@ '%'를 부여 옵션 'PSWD'로 식별에; 모든 권한을 부여

IP 주소는이 결과가 한 모든 컴퓨터에서 원격으로 연결할 때 루트 암호가 올바른지로, 한번에, 수락하는 것입니다, % 변화하지만, 얼마나 많은 장점과 같은 보안 위험, 자신의 권리를 유지하는 것입니다.

추천

출처www.cnblogs.com/haiton/p/11064727.html