Description
1. Server 자원 접속
⚙
mac OS 작업 환경 기준
서버 운영체제는 Ubuntu 기준
- macOS는 기본적으로 UNIX 기반의 운영체제 → 그렇기 때문에 OpenSSH Client를 기본으로 포함
- 키 파일의 권한을 400으로 변환하여 가능 권한을 맞추고 아래와 같은 명령어를 통해서 서버에 접속
# pem 파일 400 권한으로 변경 $ chmod 400 <Key File 경로> # 예: chmod 400 /Users/simon/key.pem # 접속 $ ssh [User]@[Server IP] -p [Port] -i [KeyFile] # 예: ssh ubuntu@211.45.x.x -p 22 -i /Users/simon/key.pem # 또는 $ ssh -i [KeyFile] [User]@211.45.x.x # 예: ssh -i ~/.ssh/key.pem ubuntu@211.45.x.x
2. MySQL 설치 (+MariaDB)
- 서버에 접속한 이후에 아래의 명령을 입력
# mysql 설치용 $ sudo apt-get install -y mysql-server mysql-client
- 명령어를 확인해보면 mysql-server와 mysql-client를 설치하는데, 이 둘에 대해서 간단하게 말하자면 아래와 같다.
The mysql server package will install the mysql database server which you can interact with using a mysql client. You can use the mysql client to send commands to any mysql server; on a remote computer or your own.
(Source: stackoverflow 링크)
- MariaDB 설치는 아래의 코드를 입력
# mariadb 설치용 sudo apt install mariadb-server
MariaDB 설치 관련 설명은 아래를 참고해 볼 수 있음.
MariaDB 설치 - 원격 접속 설정MariaDB 설치 $ sudo apt install mariadb-server MariaDB 초기화 - 권한 설정(mysql_secure_installation) $ sudo mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user.https://bluexmas.tistory.com/895
- 명령어를 확인해보면 mysql-server와 mysql-client를 설치하는데, 이 둘에 대해서 간단하게 말하자면 아래와 같다.
- 추가 내용
- Ubuntu 패키지 관리 툴인 apt에 대한 사용법은 아래의 페이지 참고Ubuntu 패키지 관리 툴: apt 사용법우분투에서 패키지를 관리하는 툴로 apt-get과 apt-cache를 주로 사용해 왔습니다. 요즘에는 두 명령을 결합한 명령이 apt 를 주로 사용합니다. apt는 apt-get/apt-cache를 완전히 통합하는 툴은 아닌 것 같습니다. 사용자 편리성을 위해서 apt-get과 apt-cache의 주요 기능을 결합한 툴입니다. man에서는 apt를 다음과 같이 설명합니다. apt provides a high-level commandline interface for the package management system.
http://taewan.kim/tip/apt-apt-get/
- 관련 내용의 MySQL Quick Guide documentation 도 참고해 볼 수 있음A Quick Guide to Using the MySQL APT RepositoryFirst, add the MySQL APT repository to your system's software repository list. Follow these steps: Go to the download page for the MySQL APT repository at https://dev.mysql.com/downloads/repo/apt/. Select and download the release package for your Linux distribution.
https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/
- Ubuntu 패키지 관리 툴인 apt에 대한 사용법은 아래의 페이지 참고
3. DB 권한 설정 (MySQL, MariaDB)
- 아래의 명령어를 입력하여 MySQL 패스워드 설정
$ sudo mysql # mysql 접속후 쿼리로 입력 ## DB 접속후 현재 설정 확인 mysql > SELECT user, authentication_string, plugin, host FROM mysql.user; ## 계정 권한 부여(여기서는 root) mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<your password>'; mysql > FLUSH PRIVILEGES; ## 계정 권한 설정 후 설정 확인 mysql > SELECT user, authentication_string, plugin, host FROM mysql.user; mysql > exit
위의 SQL 쿼리 중에서 SELECT 문을 입력하게 되면 아래와 같은 결과가 출력됨을 확인할 수 있다.
- Access MySQL(MariaDB)
4. 원격 접속 허용 설정
4-1. 설정 파일 찾기
- 일반적으로 설정 파일의 위치는 /etc/my.cnf 이지만, 경로가 하나로 고정되어 있는 것이 아니기 때문에 MySQL 서버는 처음 발견된 my.cnf 파일을 사용한다.
따라서 아래와 같은 명령어를 입력하여 파일 위치를 탐색할 수 있다.
$ find / -name my.cnf
- find 명령어를 실행하면 위와 같은 결과가 나오는데, 여기에서 mysql 설정 파일 my.cnf 는
/etc/mysql/my.cnf
에 있음을 확인할 수 있다.
- Permission denied가 엄청 많을 수도 있는데, 당황하지 말고 mysql 설정 파일 위치만 찾아내면 된다.
- find 명령어를 실행하면 위와 같은 결과가 나오는데, 여기에서 mysql 설정 파일 my.cnf 는
4-2. 설정 파일 변경
- vi 편집기로 open my.cnf file
sudo vi /etc/mysql/my.cnf
편집 영역으로 들어왔으면
i
를 눌러서 insert mode로 변경하고 [mysqld]의bind-address = 0.0.0.0
으로 변경[mysqld] bind-address = 0.0.0.0
만약 my.cnf 파일에 해당 내용이 입력되어 있지 않을 경우, 위와 같은 내용을 추가해주면 된다. 설정 사항을 입력해주었다면
ESC
를 누르고:wq
를 입력하여 변경 내용을 저장하고 편집기를 나오도록 한다.이제 설정을 변경해 줬으므로 이후에는 재시작을 하여 변경내용을 적용시켜 주어야 한다.
- bind-address 에서 특정 IP만 허용하기 위해서는 아래와 같은 형태로 작성할 수 있음
bind-address = 192.168.0.1, 10.0.0.1
- 만약
readonly option is set (add ! to override)
메세지가 출력된다면…- 위와 같은 메세지가 출력되는 경우는
sudo vi
로 편집을 하지 않고 바로vi /etc/mysql/my.cnf
로 파일을 수정하려고 했기 때문이다.이때는
:qa!
로 편집기를 먼저 나오고 다시 sudo ~ 로 실행하도록 하자. 이것도 안된다면 아래의 사이트에서 다른 답변을 확인할 수 있다.(Source: askubuntu 링크)
- 위와 같은 메세지가 출력되는 경우는
4-3. DB 재시작
- 아래의 명령어 중에서 재시작을 위해 restart 를 실행하여 DB를 재시작하고 설정 내용을 적용시켜준다.
sudo systemctl start mysql.service sudo systemctl stop mysql.service sudo systemctl restart mysql.service sudo systemctl status mysql.service
5. 새로운 유저 생성
- 기본적으로 새로운 user를 생성하는 것은 아래의 SQL 쿼리로 작성할 수 있다.
mysql> CREATE USER 'user1'@localhost IDENTIFIED BY 'password1';
생성한 유저는 아래의 쿼리를 입력하여 확인할 수 있음
mysql> SELECT User FROM mysql.user; # localhost가 아닌 사용자 찾기 mysql> SELECT User, Host FROM mysql.user where Host <> 'localhost'; # 위에서 작성했던 쿼리를 작성해도 됨 mysql> SELECT user, authentication_string, plugin, host FROM mysql.user;
- 새로 생성한 user1 사용자를 192.168.0.* 대의 IP에서 접근이 가능하도록 권한 부여
mysql> GRANT ALL PRIVILEGES ON *.* TO 'user1'@'192.168.0.%' IDENTIFIED BY 'new_password' WITH GRANT OPTION;
만약 기존 비밀번호를 그대로 사용하고 싶으면 IDENTIFIED BY ‘new_password’ 부분을 생략
(Source: 티스토리 블로그 링크)
- How to Create MariaDB User and Grant Privileges
참고자료
Ubuntu에서 mariaDB 외부접속 허용, 원격접속하기 with HeidiSQL
Ncloud Ubuntu 서버에서 mariaDB 외부접속 허용하는 방법과 HeidiSQL으로 원격접속하는 방법입니다 네이버 클라우드 Ubuntu에서 mariaDB 외부접속을 허용하고, mariaDB용 클라이언트 HeidiSQL을 이용해서 원격접속하는 방법을 정리해보겠습니다. 여기서 원격접속이라 함은 SSH의 Tunnels를 이용하지 않고, 외부 클라이언트 등을 이용한 직접 접속을 뜻합니다. 여기서는 네이버 클라우드에서 서버를 생성했을 때 자동으로 설정되는 root 계정을 이용한 방법을 정리하게 됩니다.

MariaDB 설치 - 원격 접속 설정
MariaDB 설치 $ sudo apt install mariadb-server MariaDB 초기화 - 권한 설정(mysql_secure_installation) $ sudo mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user.

MariaDB(MySQL) 원격에서 접근이 가능하도록 설정하기
이 문서는 2016-12-21에 작성되었습니다. 이 문서의 MariaDB는 mysql Ver 15.1 Distrib 5.5.50-MariaDB, for Linux (x86_64) using readline 5.1 입니다. 이 문서의 Centos7은 3.10.0-327.36.3.el7.x86_64 #1 SMP Mon Oct 24 16:09:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux 입니다. MariaDB 패키지는 기본적으로 127.0.0.1 만 접근하도록 허용합니다.

Uploaded by N2T