
저는 mysql을 처음 접했고 원격 로그인을 사용하고 싶습니다.스택프로세스를 실행했지만 명령을 실행하면 해당 링크에 나열된 화면에 아무것도 표시되지 않습니다.
$ lsof -i -P | grep :3306
$
이것이 출력입니다.
지금까지 내가 한 일: 파일을 편집했습니다/etc/mysql/my.cnf변경하려면 다음과 같이 표시됩니다.
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 0.0.0.0
내가 원하는 것은 기본적으로 원격 로그인을 원하지만 그렇게 할 수 없습니다. 내 터미널에서 다음 명령을 실행합니다.
$ mysql -h 127.6.110.2 -u adminTwz5PWn -p
$ enter password:
ERROR 1045 (28000): Access denied for user 'adminTwz5PWn'@'localhost' (using password: YES)
필요한 정보를 제공하기 위해 Openshift에서 이 사용자 이름과 비밀번호를 얻었습니다. 내 관심사는 명령에 호스트 IP를 제공하는 경우 @'localhost'가 어떻게 나타나는지입니다.
다음과 같이 mysql에 사용자 로그인이 있습니다
+------------------+---------------+
| user | host |
+------------------+---------------+
| root | % |
| root | 127.0.0.1 |
| adminvKbP1kf | 127.3.138.130 |
| adminTwz5PWn | 127.6.110.2 |
| root | ::1 |
| user | hostname |
| debian-sys-maint | localhost |
| phpmyadmin | localhost |
| phpmyadmin_suraj | localhost |
| root | localhost |
| suraj | localhost |
+------------------+---------------+
내가 틀린 곳이 있으면 정정하십시오. 그리고 이를 성공적으로 수행하려면 어떤 단계가 필요합니까?
답변1
전체 IP 범위는 127.0.0.0/8
루프백용으로 예약되어 있습니다. 사람들은 일반적으로 만 사용하지만 127.0.0.1
IP 127.6.110.2
도 루프백이므로 "localhost 오류"가 발생합니다.
mysql 서버에서 ip a
또는 를 실행하여 ifconfig
공용 IP 주소를 찾은 다음 해당 주소에 연결하세요.
또한 원격 시스템에서 연결이 허용된 mysql 사용자가 필요합니다. 서버에서 실행하여 mysql
mysql 콘솔을 열고 다음 쿼리 중 하나를 실행합니다(사용자 자격 증명으로 USERNAME 및 PASSWORD 변경).
원격 사용자가 특정 IP xxxx에서만 연결하도록 허용하려면:
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'x.x.x.x' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
원격 사용자가 어디에서나 연결할 수 있도록 허용하려면:
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
이러한 쿼리가 적용되도록 하려면 FLUSH PRIVILEGES;
그런 다음 실행하세요.