Description
1. Server 자원 접속
- 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 설치 관련 설명은 아래를 참고해 볼 수 있음.
- 명령어를 확인해보면 mysql-server와 mysql-client를 설치하는데, 이 둘에 대해서 간단하게 말하자면 아래와 같다.
- 추가 내용
- Ubuntu 패키지 관리 툴인 apt에 대한 사용법은 아래의 페이지 참고
- 관련 내용의 MySQL Quick Guide documentation 도 참고해 볼 수 있음
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)
- 아래는 기본적으로 mysql(mariadb) 접속을 위한 command line임
sudo mysql -u root # root로 접속 # if root user has a predefined password, sudo mysql -u root -p
참고로
Enter password:
뒤에 패스워드를 입력해보면 아무것도 입력이 안되는 것처럼 비어 보일 수 있으나, 비밀번호가 노출되지 않도록 안보이게 입력이 되는 상태임
- 아래는 기본적으로 mysql(mariadb) 접속을 위한 command line임
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
참고자료
Uploaded by N2T