우분투 MySQL 설치 및 설정 사용자 추가 우분투 리눅스 환경에서 MySQL 설치 방법에 대해 설명드립니다. 데이터베이스 설치 후 DB 초기화 방법과 사용자 계정 추가 DB 생성 등에서도 함께 설명드립니다.
MySQL 설치 및 설정 방법
우분투 MySQL 설치
우분투 리눅스 환경에서 MySQL 설치 방법에 대해 설명드리겠습니다. 데이터가 저장되고 관리 될 MySQL이라는 데이터베이스입니다. 아래의 명령어로 MySQL Server를 설치합니다.
$ sudo apt install -y mysql-server
설치가 완료되면 다음 명령어로 MySQL 서버를 초기화 합니다.
$ sudo mysql_secure_installation
충분히 강한 패스워드를 생성할 수 있는 플러그인을 활성화 하는지 묻는 내용으로, 엔터를 입력하여 넘어갑니다.
MySQL에서 사용될 패스워드를 묻는 질문으로, 데이터베이스 최고 관리자 권한 패스워드입니다. 패스워드를 두 번 입력합니다.
다음은 익명의 사용자를 제거하는지 묻는 내용으로 y를 입력하여, 익명 사용자를 제거합니다.
최고 관리자 권한으로 외부 로그인을 허용하지 않을 것인지 묻는 내용입니다. y를 입력하여 외부 접속을 차단합니다.
아래의 화면은 test 데이터베이스를 삭제할지 묻는 내용으로, y를 입력하여 삭제합니다.
마지막으로 privileges table을 다시 로드할지 묻는내용으로 y를 입력하여 다시 로드합니다.
그리고 아래의 명령어로 MySQL 데몬을 다시 실행합니다.
$ sudo /etc/init.d/mysql restart
MySQL 설정
아래의 명령어로 MySQL 서버에 접속합니다. 그리고 입력한 패스워드를 입력합니다.
$ sudo mysql -u root -p
프롬프트에서 사용자 계정을 생성하고, 서비스를 운영하는데 사용될 데이터베이스를 생성할 것입니다. 아래의 정보로 생성할 것으로 환경에 맞게 수정하셔서 적용하시면 됩니다.
MySQL 사용자 계정, DB 생성
다음 명령어는 아래의 사용자 정보 그리고 데이터베이스 이름은 study으로 설정하는 명령어입니다.
- 데이터베이스 사용자명 : dbuser
- 데이터베이스 비밀번호 : abcd1234
생성하는 사용자는 서버(localhost) 내에서만 접속을 허용하면서, 사용자를 생성하면서 비밀번호(identified by)를 함께 지정하였습니다. 그리고 create database 명령어로 study 라는 데이터베이스를 생성하고, 생성된 DB에 모든 권한을 신규로 생성한 사용자에게 부여한 다는 의미입니다.
mysql> CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'abcd1234';
mysql> create database study;
mysql> grant all privileges on study.* to 'dbuser'@'localhost';
mysql> flush privileges;
설정을 끝내면, 다음 명령어로 MySQL 접속을 종료합니다.
mysql> exit;
MySQL 외부 접속 허용
MySQL 서버에서 외부 접속 허용하기 위해서는 먼저 외부에서 접속 할 수 있는 계정을 생성해야 합니다.
위에서 생성한 사용자 계정은 로컬(localhost) 에서만 접속을 할 수 있습니다. 특정 아이피 또는 % 기호를 지정하여 외부 에서 접속 할 수 있는 사용자 계정을 생성합니다.
그 다음 /etc/mysql/mysql.conf.d/mysqld.cnf 파일의 [mysqld] 영역에서 bind-address 부분을 아래와 같이 주석 처리 합니다.
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#
# bind-address = 127.0.0.1
그리고 아래의 명령어로 MySQL 서버 데몬을 재실행 하면 됩니다.
$ sudo /etc/init.d/mysql restart
대량의 데이터를 처리하기 위해서 MySQL 서버를 Replication으로 구성할 수도 있습니다. 이와 관련해서는 아래의 글을 참고해 주시기 바랍니다.
( 본문 인용시 출처를 밝혀 주시면 감사하겠습니다.)