MariaDB를 기본 yum install mariadb로 설치했을 경우 5.5 버전이 설치된다.
따로 repository를 설정해야 상위버전을 설치할 수 있다.
vi /etc/yum.repos.d/MariaDB.repo
tab 키를 이용하면 쉽게 폴더작성이 가능하다. (폴더가 존재할 경우에만)
i 입력하여 편집모드로 바꾼 후 아래 내용을 복사해서 붙여넣는다.
[mariadb]
name = MariaDB
baseurl = https://archive.mariadb.org/mariadb-10.1/yum/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
편집종료(ESC키 입력)하고 저장 후 종료(:wq 입력)
yum install -y MariaDB MariaDB-server MariaDB-client
옵션 -y : 설치 과정에서 묻는 질문들에 모두 yes를 입력하도록 한다.
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
"cp: overwrite `/etc/my.cnf'? y"
vi /etc/my.cnf
[mysqld]를 찾아서 그 아래에 추가 또는 수정해준다
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
max_allowed_packet=1073741824
lower_case_table_names=1
편집 종료 후 저장, 종료한다.
systemctl start mariadb
또는
service mariadb start
mysql_secure_installation
Enter current password for root (enter for none)
: 초기 비번이 없으니 그냥 Enter'
Set root password? [Y/n]
: root 패스워드 설정하겠는지 물을때 Y
New password:
Re-enter new password:
: 원하는 root 패스워드를 입력한다.
Remove anonymous users? [Y/n]
: anonymous계정을 삭제할래? Y
Disallow root login remotely? [Y/n]
: 원격으로 root 로그인 허용할거니? Y
Remove test database and access to it? [Y/n]
: 테스트데이터베이스 지울꺼야? Y
Reload privilege tables now? [Y/n]
: 권한 테이블을 다시 로그할거니? Y
mysql -u root -p
create database [데이터배이스명] default character set utf8 collate utf8_general_ci;
유저생성
create user '유저아이디'@'ip주소/localhost'identified by '비밀번호';
권한
GRANT ALL PRIVILEGES ON *.* TO '유저아이디'@'ip주소' IDENTIFIED BY '유저비밀번호' WITH GRANT OPTION;
DB 사용자권한보기
SHOW GRANTS FOR '사용자계정'@'IP주소';
현재 생성된 함수나 프로시져 목록
SELECT * FROM infornation_schema.ROUTINES;
SP 권한주기
GRANT SELECT, INSERT, UPDATE, DELETE ON mysql.proc TO 'DB유저'@'호스트';
모든 권한을 주기를 원한다면 아래와 같은 방법을 사용하는 것이 편리
mysql> GRANT ALL PRIVILEGES on DB명.* TO 'id'@'localhost';
mysql> GRANT ALL PRIVILEGES on DB명.* TO 'id';
mysql> GRANT ALL PRIVILEGES on DB명.* TO 'id'@'ip주소';
DB user 보기
select host, user, password from mysql.user;
모든과정을 끝낸 후에는
flush privileges;
를 해준다.
DBeaver를 이용해서 리눅스 환경에 접속해보기
Server Host : ip주소
Port : 3306
Database : 리눅스 서버에서 설정한 databse 입력
Username : 리눅스 서버에서 설정한 username 입력
Password : 리눅스 서버에서 설정한 password 입력
다음과 같은 에러가 발생하면 방화벽을 하용해주자.
방화벽에 포트 추가/제거하기
firewall-cmd --permanent --zone=public --add-port=[포트번호]/[프로토콜]
ex) firewall-cmd --permanent --zone=public --add-port=3306/tcp
항상 설정 후에는
firewall-cmd --reload
방화벽에 허용한 포트/서비스 목록 확인
firewall-cmd --list-ports / --list--services
만약 위 경우도 안된다면
netstat명령어를 통해 호스트에 장착된 네트워크 인터페이스(연결상테, 프로토콜 등) 상태를 확인한다.
127.0.0.1로 나오면 localhost에서는 접속이 되지만 원격 IP에서는 접속이 안된다.
vi /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 127.0.0.1 를 주석처리하고
bind-address = 0.0.0.0 을 추가하고 저장한다.
마지막으로 변경사항을 저장하기 위해 MariaDB를 재시작한다.
또한 다음과 같은 에러가 발생하면 아래와 같이 처리해주자.
GRANT ALL PRIVILEGES ON *.* TO '유저아이디'@'내ip주소' IDENTIFIED BY '유저비밀번호' WITH GRANT OPTION;