개인용 클라우드 서버를 생성 후 개인 공부용으로 db가 필요하여 mysql을 설치했다.
대략적인 순서는 알고 있지만 매번 설치를 진행할때마다 찾게 되어 이참에 설치 과정을 정리해본다.(+ 삽질기 ㅜ)
(우분투 20.04.3 LTS 기준으로 작성되었습니다.)
1️⃣ mysql 설치하기
$ sudo apt-get update
$ sudo apt-get install mysql-server
설치를 진행하는 과정에서 별다른 입력 없이 중간에 Y(?)만 입력했는데, 초기 계정의 경우는 우분투 계정/비밀번호와 동일하게 셋팅되는 것 같다.
2️⃣ mysql 설정 및 실행하기
#mysql 시작
sudo service mysql start
#mysql 종료
sudo service mysql stop
#mysql 재시작
sudo service mysql restart
클라우드 서버에 설치를 했기 때문에 외부에서 접근이 가능하게 설정해주어야 한다. mysql을 사용하는 3306 포트는 카페24 관리자 페이지를 통해서 방화벽을 열어주었다. 추가로 mysql 설정파일에서 bind-address 값을 주석처리 해주었다.
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
3️⃣ DB 생성 / 계정 생성
#mysql 로그인
$mysql -u 계정명 -p
#db 만들기
mysql> create database test;
#계정 만들기
mysql> create user '아이디'@'%' identified by '비밀번호';
mysql> grant all privileges on test.* to '아이디'@'%';
mysql> FLUSH PRIVILEGES;
데이터베이스를 생성 후 해당 데이터베이스를 사용할 계정을 생성했다.
간단하게 살펴보면 아이디 옆에 @'%'는 외부에서 모든 ip에 대한 접근을 허용하겠다는 의미이다. 외에도 로컬에서만 사용, 특정 ip에서 사용 등 다양한 설정이 가능하다.
#명령어별 권한 설정
mysql> grant select, insert, update on test.* to '아이디'@'%';
❌ 삽질한 내용
mysql 설치 후 평소 자주 사용하는 sequel pro를 사용해서 접속을 시도했더니 다음과 같은 에러 발생
caching_sha2_password.so: cannot open shared object file: no such file or directory
대충 검색해보니 mysql 8버젼부터는 암호화 플러그인이 변경되어서 저런 에러가 발생한 것 같다. sequel pro는 2016년 마지막 릴리즈 버젼으로 저 플러그인을 지원하지 않는다고 한다. 스택오버플로우 검색결과 계정을 기존 방식인 mysql_native_password 으로 변경해주면 된다고해서 일단 시도.
mysql> CREATE USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
시도해본 결과 접속은 된다! 하지만 데이터베이스를 인식하지 못한다.. mysql 8버젼과는 뭔가 호환되지 않는(?) 무언가가 있는듯..
그냥 편하게 workbench 쓰는 것으로 스스로 합의.
❗️ 결론
비교적 간단한 작업이었으나 서버 설정 관련 작업들은 자주 해보지 않아서 작업을 할 때마다 구글링이 필요하다. 매번 같은 내용을 찾는 경우가 많이 생겨서 이참에 문서로 정리해보았다. SE의 영역(?) 같지만 언젠가 이런 작업을 해야할 경우가 생길 수도 있을 것 같다.
✅ 참고자료
- [Ubuntu] 우분투에 MySQL 설치하기
- mysql, mariadb 외부접속을 위한 환경설정 bind-address 위치
- MySQL 유저 생성하기
- Authentication plugin 'caching_sha2_password'
'개발자, 탐구생활 > 개발자, 코딩' 카테고리의 다른 글
hosts.txt 파일에 관해 (0) | 2023.06.26 |
---|---|
[RestFul API]SOAP과 REST의 차이 (0) | 2022.06.06 |
[js]Sheet.js를 사용한 클라이언트에서 excel download 예제! (0) | 2022.01.13 |
[php]Codeigniter 4 Layout 사용하기 - 메뉴바, 푸터 공통 사용 (0) | 2022.01.07 |
[Spring]스프링 프로젝트 Heroku 에 deploy하기. (0) | 2021.12.18 |