>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 원격 연결 및 액세스 제어를 수행하는 방법은 무엇입니까?

MySQL에서 원격 연결 및 액세스 제어를 수행하는 방법은 무엇입니까?

PHPz
PHPz원래의
2023-07-29 21:10:551665검색

MySQL은 일반적으로 사용되는 관계형 데이터베이스 관리 시스템으로 효율성과 편의성을 높이기 위해 다양한 환경에서 원격으로 MySQL에 연결하고 액세스해야 하는 경우가 많습니다. 이 기사에서는 MySQL에서 원격 연결 및 액세스 제어를 수행하는 방법을 소개하고 해당 코드 예제를 제공합니다.

  1. MySQL 구성 파일 수정

먼저 원격 연결을 허용하도록 MySQL 구성 파일을 수정해야 합니다. MySQL 설치 디렉터리에서 my.cnf 파일을 찾아 텍스트 편집기로 엽니다.

sudo nano /etc/mysql/my.cnf

파일에서 바인딩 주소 속성을 찾아 주석 처리하거나 해당 값을 0.0.0.0으로 변경하세요. 이런 방식으로 MySQL 서버는 모든 IP 주소로부터의 원격 연결을 허용합니다.

#bind-address = 127.0.0.1

파일을 저장하고 닫은 다음 MySQL 서비스를 다시 시작하여 변경 사항을 적용하세요.

sudo service mysql restart
  1. 원격 액세스 권한 부여

다음으로 MySQL에서 원격 액세스를 허용하는 사용자를 생성하고 해당 권한을 부여해야 합니다. MySQL 명령줄 클라이언트를 엽니다.

mysql -u root -p

MySQL 슈퍼 사용자 루트의 비밀번호를 입력하고 MySQL 명령줄 인터페이스를 입력하세요.

새 사용자를 만들고 비밀번호를 설정하세요.

CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password';

여기서 'remote_user'는 새 사용자의 사용자 이름이고 'password'는 비밀번호이며 %는 모든 IP 주소로부터의 연결을 허용한다는 의미입니다. 특정 IP 주소의 연결만 허용하려면 %를 특정 IP 주소로 바꾸면 됩니다.

이 사용자에게 모든 데이터베이스에 대한 액세스 권한을 부여하세요.

GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';

시스템 권한 테이블을 새로 고칩니다.

FLUSH PRIVILEGES;

MySQL 명령줄 클라이언트를 종료하세요.

EXIT;
  1. 방화벽 구성

서버에 방화벽이 활성화되어 있는 경우 MySQL의 기본 포트(일반적으로 3306)가 열려 있는지 확인해야 합니다. 다음 명령을 사용하여 현재 방화벽 규칙을 볼 수 있습니다.

sudo ufw status

MySQL의 기본 포트가 열려 있지 않은 경우 다음 명령을 사용하여 포트를 열 수 있습니다.

sudo ufw allow 3306
  1. 원격 연결

이제 다음 코드 예제를 사용하여 원격으로 데이터베이스에 연결할 수 있습니다.

import mysql.connector

config = {
  'user': 'remote_user',
  'password': 'password',
  'host': 'your_server_ip',
  'database': 'your_database',
  'raise_on_warnings': True
}

cnx = mysql.connector.connect(**config)
cursor = cnx.cursor()

# 这里可以编写具体的数据库操作代码

cursor.close()
cnx.close()

코드에서 'remote_user'를 이전에 생성한 원격 사용자의 사용자 이름으로 바꾸고, 'password'를 해당 비밀번호로 바꿔야 합니다. 'your_server_ip'와 'your_database'는 실제 상황에 따라 원격 MySQL 서버의 IP 주소와 연결할 데이터베이스 이름으로 대체됩니다.

위 단계와 코드 예제를 통해 MySQL에서 원격 연결 및 액세스 제어를 구현할 수 있습니다. 이를 통해 다양한 환경에서 MySQL 데이터베이스를 쉽게 운영하고 업무 효율성을 높일 수 있습니다.

위 내용은 MySQL에서 원격 연결 및 액세스 제어를 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.