명령줄을 사용하여 원격 MySQL 데이터베이스 연결
![명령줄을 사용하여 원격 MySQL 데이터베이스 연결](/img/MySQL/feature-image---mysql-command-line-connect-to-remote-database.webp)
분산 환경에서 작업할 때는 원격 연결이 필요합니다. 이 자습서는 명령줄을 사용하여 원격 MySQL 데이터베이스를 연결하는 방법을 교육하는 단계별 가이드입니다.
명령줄을 사용하여 원격 MySQL 데이터베이스 연결
계속 진행하기 전에 먼저 명령줄 또는 터미널 창에 대한 액세스와 다른 위치(원격 MySQL 서버)에서 실행 중인 MySQL 서버에 대한 액세스가 필요합니다.
또한 원격 및 로컬 시스템에 대한 root
또는 sudo
권한이 필요합니다. MySQL 서버에 직접 액세스할 수 없는 경우 ssh
를 사용하여 원격으로 연결할 수도 있습니다.
ssh
를 사용하여 연결하려면 이 기사를 사용할 수 있습니다.
이 자습서는 명령줄을 사용하여 MySQL 데이터베이스와 원격 연결을 설정하는 방법을 안내합니다. 여기에는 다음 단계가 포함됩니다.
- MySQL
config
파일 편집 - 원격 연결을 허용하도록 방화벽 구성
root
로그인을 원격으로 허용- 원격 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
, Host
및 Db
를 지정된 값으로 바꿉니다. 그런 다음 이제 원격 위치에서 지정된 데이터베이스에 액세스할 수 있습니다.