-
[Linux] Database 설치 및 설정개발/개발환경구축 2021. 10. 25. 18:14
windows 설치는 홈페이지에 들어가서 설치하고 설정도 쉽게 할 수 있으므로
Linux 서버에 설치한다는 전제로 진행하겠습니다.
대표적인 Server DB 종류는 아래의 두가지가 있습니다.
Oracle : 강력한 프로시저 제공 (유료)
Mysql : 가장 널리 사용되는 DB
하지만 이번에 설치할 DB 는 MariaDB입니다.
Q : Oracle 은 유료니까 그렇다고 쳐도 그러면 무료인 MySQL 을 쓰면 돼는거 아닌가요?
A : Mysql 은 오라클에 인수됬습니다. 그 후로는 JAVA 처럼 사용은 무료, 상업용으로 쓸 경우 유료 라이센스를 지니게 되었습니다.
Q : 그래도 db는 성능하고 속도가 생명인데 역시 대중적으로 쓰이는 DB를 쓰는게 맞지 않나요?
A : 성능과 속도로 대결해도 MariaDB 가 1위입니다.
Q : DB 마다 사용되는 타입명과 지원돼는 API 가 다르잖아요. 저는 그런 것들을 전부 새로 외우고 싶지 않아요.
A : Mysql 과 내부구조가 100% 동일하며 거기에 +α가 있습니다. 심지어 mysql의 파일을 가져다 써도 실행됩니다.
------------------------1. 설치------------------------
시작하기 앞서서 앞에서 말한대로 MariaDB 는 mysql 과 동일한 구조를 지니고 있기 때문에
Mysql 이 설치되어있으면 MariaDB 가 설치되지 않습니다.
클라우드 서버를 사용할 경우 이미 설치되어있는 mysql 에 충돌을 일으켜서 설치가 안돼는 경우가 있기 때문에
먼저 Mysql 제거를 시작하겠습니다.
su 를 치고 관리자 모드로 들어갑니다.
yum -y remove mysql*
다음으로 설치 경로가 mysql 과 겹쳐서 mariadb가 mysql 로 잘못 설치 되는 경우가 존재하기 때문에
yum의 Mysql 설치 경로를 제거해줍니다.
cd /etc/yum.repos.d
ls
여기서 만약 mysql 관련 파일이 존재한다면
rm mysql파일명 으로 제거해 줍니다,
이 파일은 yum -y update 로 복구할 수 있습니다.
다음으로, 설치할 os의 정보를 확인하는 작업을 진행합니다.
arch -> 내 리눅스가 arm 64인지 aarch 64 인지 x86_64(amd) 인지 확인
cat /etc/*release -> 리눅스 운영체제 이름과 버전을 확인
위의 서버에서 원하는 버전 (2021-10 기준 최신은 1.6.4)을 클릭하고
나오는 목록들은 운영체제와 64비트 종류들입니다.
만약에 당신의 리눅스 운영체제가 red hat 이고 버전이 7.9며 x86_64 라면
여기에 7.9 전용 버전은 없으므로 그 아래인 7.4버전 즉,
rhel74-amd64 가 당신의 파일이 돼는 것입니다.
다시 리눅스로 돌아와서 새로운 경로 파일을 작성해줍니다.
vi /etc/yum.repos.d/MariaDB.repo
shift i 를 눌러서 작성을 시작합니다.
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/원하는버전/당신의파일# ex) baseurl = http://yum.mariadb.org/1.6.4/rhel74-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1ESC 를 눌러서 작성을 종료하고 :wq 입력해서 저장한 뒤 나옵니다.
이제 설치해줍니다.
yum -y install MariaDB
Q : 어? 설치가 안돼는데요?
A : 만약에 위의 mysql 제거 과정을 거치신 뒤에도 이런 현상이 벌어진다면
yum remove mysql-community-libs mysql-community-common 를 실행한 뒤 시도해 보세요.
------------------------2. 설정------------------------
문자열을 UTF-8(한글을 입출력하기위한 유니코드) 로 설정하겠습니다.
vi /etc/my.cnf
shift i 를 눌러서 작성을 시작합니다.
[mysqld]
...
# instructions in http://fedoraproject.org/wiki/Systemd
init-connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[client]
port=3306
default-character-set = utf8mb4
[mysqldump]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4[mysqld_safe]
...
ESC 를 눌러서 작성을 종료하고 :wq 입력해서 저장한 뒤 나옵니다.
비밀번호 설정
/usr/bin/mysqladmin -u root password 원하는비밀번호
MariaDB접속
mysql -uroot -p패스워드
DB 생성/사용
create datebase DB이름;
use DB이름;
DB접속 종료
quit
생성한 DB로 바로 접속
mysql -uroot -p DB이름
접속할 계정 생성
create user '계정이름'@'접속할 컴퓨터 0.0.0.0' identified by '비밀번호';
->접속할 컴퓨터란 이 db에 접속할 외부 컴퓨터의 ip 를 의미합니다.
->만약 컴퓨터에 관계없이 public 계정을 만들고 싶다면 '%' 를 써줍니다.
계정에 생성한 DB에 대한 모든 권한을 추가
grant all privileges on DB이름.* to '계정이름'@'아이피';
읽기(select) 만 가능하게 ->
grant select on DB이름.* to '계정이름'@'아이피';
flush privileges; ->적용
로그를 활성화 합니다.
SET GLOBAL general_log = ON;(재부팅시 초기화)
마지막으로 mariaDB 의 3306 포트를 개방하겠습니다.
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
'개발 > 개발환경구축' 카테고리의 다른 글
[Windows] Spring MVC 프로젝트 수동 생성 (0) 2022.11.24 [Project Config] Eclipse - JDBC 연동 (0) 2021.10.30 [Windows] ECLIPSE 에서 JAVA,TOMCAT, Git, Spring 설정 (0) 2021.10.22 [Linux] 아파치(Apache) 설치 & https 설정 & 톰캣(Tomcat) 설정 (0) 2021.10.10 Windows 클라이언트 , Linux 서버 간의 SMB (공유파일) 설정방법 (100% 구동확인) (3) (0) 2020.03.13