MySQL에 원격으로 연결할 수 없습니다.

MySQL에 원격으로 연결할 수 없습니다.

LAN에서 실행되는 3개의 서버와 1개의 Windows 시스템이 있습니다.

HTTP server (Apache2, PHP5 & phpmyadmin) - 10.0.0.10
DNS - 10.0.0.1
MySQL - 10.0.0.40
Windows - 10.0.0.157

방금 mysql 서버에 mysql의 새로운 복사본을 설치했습니다. 먼저 바인드 주소를 주석 처리했습니다. 다음을 수행하여 권한을 부여했습니다.

CREATE USER 'https'@'localuser' IDENTIFIED BY 'password';
CREATE USER 'https'@'10.0.0.10' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'https'@'localhost';
GRANT ALL PRIVILEGES ON *.* TO 'https'@'10.0.0.10';

그러나 http 서버를 통해 mysql에 연결하려고 할 때마다 다음이 발생합니다.

mysql -u https -p
enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket 'var/run/mysqld/mysqld.sock'(2)

내가 시도할 때

mysql -h 10.0.0.40 -P 3306 -u https -p

다른 오류가 발생합니다.

ERROR 1045 (28000): Access denied for user 'https'@'10.0.0.10' (Using password: Yes)`

제가 아는 한 왜 이런 일이 발생하는지 잘 모르겠습니다. 구성에 필요한 모든 작업을 완료했습니다. :(

사용자를 위한 mysql 테이블에는 다음이 있습니다.

user  | host  
https  %
https   10.0.0.10
sqlserver   127.0.0.1
sqlserver ::1
debian-sys-maint  localhost
https    localhost
sqlserver    localhost
sqlserver    raspberrypi

누군가 나에게 올바른 방향을 알려줄 수 있습니까? 나는 주변을 검색했고 내가 본 모든 것은 바인드 주소 줄에 대한 주석을 가리키는 것뿐입니다.

편집하다sqlserver이름이 변경된 루트 계정 이외의 사용자를 사용하여 로컬로 로그인할 수도 없습니다 . 새 계정을 추가하고 로컬로 로그인해 보았지만 여전히 동일한 문제입니다!

답변1

Jos가 부분적으로 답변한 내 질문에 답하기 위해.

바인드 주소 줄(in)을 주석 처리하면 안 됩니다 /etc/my.cnf. 대신 서버의 IP 주소(예: )를 지정 10.0.0.40하고 MySQL을 다시 시작해야 합니다.

와 결합된 것

GRANT ALL PRIVILEGES ON *.* TO ‘https’@’localhost’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;
대신
GRANT ALL PRIVILEGES ON *.* TO 'https'@'10.0.0.10';
문제가 해결되었습니다. 이것이 동일한 문제를 겪고 있는 다른 사람들에게도 도움이 되기를 바랍니다.

도와주셔서 감사합니다!

답변2

당신이 실행한다면

netstat -an | grep 3306

포트 3306에 대한 LISTEN 항목이 표시됩니까?

답변3

서비스가 시작되었나요? 그렇지 않은 경우(또는 확실하지 않은 경우) 다음을 실행하세요.

sudo service mysql start

관련 정보