명령줄을 사용하여 원격 MySQL 데이터베이스 연결

Mehvish Ashiq 2022년5월31일
명령줄을 사용하여 원격 MySQL 데이터베이스 연결

분산 환경에서 작업할 때는 원격 연결이 필요합니다. 이 자습서는 명령줄을 사용하여 원격 MySQL 데이터베이스를 연결하는 방법을 교육하는 단계별 가이드입니다.

명령줄을 사용하여 원격 MySQL 데이터베이스 연결

계속 진행하기 전에 먼저 명령줄 또는 터미널 창에 대한 액세스와 다른 위치(원격 MySQL 서버)에서 실행 중인 MySQL 서버에 대한 액세스가 필요합니다.

또한 원격 및 로컬 시스템에 대한 root 또는 sudo 권한이 필요합니다. MySQL 서버에 직접 액세스할 수 없는 경우 ssh를 사용하여 원격으로 연결할 수도 있습니다.

ssh를 사용하여 연결하려면 기사를 사용할 수 있습니다.

이 자습서는 명령줄을 사용하여 MySQL 데이터베이스와 원격 연결을 설정하는 방법을 안내합니다. 여기에는 다음 단계가 포함됩니다.

  1. MySQL config 파일 편집
  2. 원격 연결을 허용하도록 방화벽 구성
  3. root 로그인을 원격으로 허용
  4. 원격 MySQL 서버에 연결

다음은 각 단계에 대한 세부 정보입니다.

MySQL config 파일 편집

다음 명령을 사용하여 텍스트 편집기에서 config 파일을 엽니다. 우리는 나노 텍스트 편집기를 사용하지만 편안하게 느끼는 모든 텍스트 편집기를 사용할 수 있습니다.

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

config 파일의 경로를 잊어버렸거나 모른다고 가정하고 find 명령을 사용하여 config 파일의 위치를 ​​알 수 있습니다. config 파일이 열리면 [mysqld](https://phoenixnap.com/kb/guide-linux-find-command) 섹션을 검색합니다.

[mysqld] 섹션에서 bind-address를 찾아 값을 127.0.0.1에서 0.0.0.0으로 변경하거나 # 기호를 사용하여 이 줄에 주석을 추가합니다.

bind-address 옵션을 업데이트하는 이유는 무엇입니까? 기본 설정으로 인해 IP 주소가 127.0.0.1인 로컬 시스템을 사용하여 이 서버에 연결할 수 있습니다.

# 기호를 사용하거나 해당 값을 0.0.0.0으로 대체하여 이 옵션에 대한 주석을 달아 모든 시스템이 이 서버에 원격으로 연결할 수 있습니다.

원격으로 한 대의 머신만 연결하려면 0.0.0.0 대신 호스트 머신의 IP 주소를 쓸 수 있습니다. 변경 사항이 완료되면 저장하고 파일을 종료합니다.

업데이트를 적용하려면 다음 명령을 사용하여 MySQL 서버를 다시 시작합니다.

sudo systemctl restart mysql

원격 연결을 허용하도록 방화벽 구성

config 파일에서 bind-address를 구성하는 동안 기본 MySQL 포트가 3306인 것을 관찰했을 수 있습니다. 여기서는 MySQL의 기본 포트인 3306에 대한 원격 트래픽을 허용하도록 설정을 조정합니다.

트래픽을 열기 전에 방화벽을 올바르게 구성해야 합니다. 완료되면 아래 명령을 사용하여 이 특정 포트에 대한 트래픽을 열 수 있습니다.

Ubuntu 20.04를 사용하고 있으므로 ufw(복잡한 방화벽)를 사용합니다.

sudo ufw allow from your_remote_ip_address to any port 3306

Enter를 누르자마자 규칙이 성공적으로 업데이트되었음을 ​​알 수 있습니다.

원격으로 루트 로그인 허용

기본 설정으로 인해 로컬 시스템을 사용하여 root에 연결할 수 있습니다. 원격 시스템이 루트로 연결할 수 있도록 몇 가지를 변경해야 합니다.

그렇게 하려면 다음 명령을 사용하십시오.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
mysql> UPDATE mysql.user SET host='%' WHERE user='root';

그런 다음 다음과 같이 systemctl을 사용하여 MySQL 서버를 다시 시작합니다.

sudo systemctl restart mysql

원격 MySQL 서버에 연결

원격 MySQL 서버가 원격 연결을 수락할 준비가 되면 다음 명령을 사용하여 원격 MySQL 서버에 연결할 수 있습니다.

mysql -u your_username -h your_mysql_server_ip -p

여기에서 your_username을 사용자 이름으로 바꾸고 your_mysql_server_ip를 IP로 바꾸십시오. MySQL 서버의 호스트 이름을 사용할 수도 있습니다.

-p는 위에 제공된 명령에서 사용한 사용자 이름의 암호를 입력하도록 요청합니다.

모든 것을 올바르게 수행했다면 마침내 원격 MySQL 서버에 연결될 것입니다. 데이터베이스에 대한 원격 액세스 권한을 부여하기 위해 다음 쿼리를 실행할 수 있습니다.

mysql> update db set Host='ip_address' where
    -> Db='yourDB_name';

mysql> update user set Host='ip_address' where
    -> user='username';

username, HostDb를 지정된 값으로 바꿉니다. 그런 다음 이제 원격 위치에서 지정된 데이터베이스에 액세스할 수 있습니다.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

관련 문장 - MySQL Database