MY-SQL

 

 

MariaDB를 설치하기 전에 ubuntu에 repository를 설정하기 위해 아래 링크의 페이지를 열어줍니다.

 

https://downloads.mariadb.org/mariadb/repositories

 

아래와 같이 서버와 버전 정보를 선택해줍니다.

 

 

버전 선택 후엔 다음과 같이 repository를 설정하는 방법이 나옵니다.

위의 내용대로 ubuntu에 적용해줍니다.

 

Ubuntu 시스템의 MariaDB 저장소에서 MariaDB 10.4를 설치하기 위해 실행할 명령은 다음과 같습니다.

sudo apt-get install software-properties-common
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc' 
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mirror.marwan.ma/mariadb/repo/10.4/ubuntu bionic main'

키를 가져오고 저장소를 추가하면 다음을 사용하여 MariaDB 저장소에서 MariaDB 10.4를 설치할 수 있습니다.

sudo apt update 
sudo apt install mariadb-server

자세한 내용과 MariaDB Galera Cluster 설치 지침은 MariaDB .deb 파일 설치를 참조하십시오 .

사용자 지정 MariaDB sources.list 파일을 생성 할 수도 있습니다. 이렇게하려면 위에서 설명한대로 서명 키를 가져온 후 다음을 복사하여 /etc/apt/sources.list.d /(MariaDB.list 또는 유사한 파일의 이름을 지정하는 것이 좋습니다) 아래의 파일에 붙여 넣거나 추가합니다. /etc/apt/sources.list 파일 의 맨 아래에 있습니다 .

.

# MariaDB 10.4 repository list - created 2021-06-01 19:15 UTC 
# http://downloads.mariadb.org/mariadb/repositories/ 
deb [arch=amd64,arm64,ppc64el] https://mirror.marwan.ma/mariadb/repo/10.4/ubuntu bionic main 
deb-src https://mirror.marwan.ma/mariadb/repo/10.4/ubuntu bionic main

 

디버그 패키지가 필요한 경우 다음을 사용하여 디버그 구성 요소를 sources.list에 추가합니다.

sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mirror.marwan.ma/mariadb/repo/10.4/ubuntu bionic main/debug'

MariaDB 디버그 패키지는 이제 apt 또는 apt-cache로 'mariadb'를 검색 할 때 표시되며 ' -dbgsym'접미사 로 구분 됩니다. 디버그 패키지는 일반적으로 개발 중에 만 필요하며 일반적으로 필요하다는 것을 알지 못하는 경우 설치해서는 안됩니다. 또한 디버그 구성 요소가 apt에서 구성되면 apt update다양한 번역 또는 명령 파일을 사용할 수 없다는 ' '를 수행 할 때 경고가 표시됩니다 . 이러한 경고는 무시할 수 있습니다.

 

 

 

 

설치가 완료되면, 자동으로 실행되어 접속할 수가 있는데요. 접속은 mysql -u (유저 이름) -p로 하게 됩니다.

 

mysql -u root -p

 

알고 있는 비밀번호를 모두 입력해봐도 접속이 되지 않습니다. 이게 10.0 버전부터 적용된 Unix Socket 방식으로 인해 그렇습니다. 자세한 내용은 아래 링크에서 보시면 이해가 되실 것 같습니다.

https://www.nemonein.xyz/2019/07/2254/

 

시스템 계정 = mysql ID를 대응시켜서 사용하는 것이 추세라고 합니다. 그래서 sudo를 통해 root 권한이 있음을 증명하여 mysql에 접속한다면 비밀번호를 입력할 필요가 없습니다. 그러므로 아래 명령어를 통해 접속합니다.

 

 

sudo mysql

 

 

비밀번호 입력 과정 없이 접속하게 됩니다. 루트 비밀번호를 변경하고 기존 방식대로 접속하기 위해서는 위의 상태에서 아래의 SQL 문을 실행하면 됩니다.

 

update user set plugin='' where User='root';
set password = password('YOUR PASSWORD');
flush privileges;

 

set password = password('test1234');

 

 비밀번호를 'test1234'로 변경한 것이 됩니다. 비밀번호를 변경한 후 일반적으로 많이 아시는 방법으로 접속해보겠습니다.

 

mysql -u root -p

 

위와 같이 이전 방식으로도 접속이 됨을 확인하였습니다.

 

 

 

기본 설정하기

그리고, mariaDB는 기본적으로 chatset이 utf8mb4로 설정되어 있어 mysql 처럼 라틴으로 된 기본 charset를 변경할 필요는 없습니다.

 

SHOW VARIABLES LIKE 'char%';

 

MariaDB [(none)]> SHOW VARIABLES LIKE 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.001 sec)
 

설정이 안되어 있다면

우분투 기준

vi  /etc/mysql/my.cnf
 

[client]

default-character-set = utf8



[mysqld]

character-set-server = utf8



[mysqldump]

default-character-set = utf8



[mysql]

default-character-set = utf8

 

설정 완료후 재시작

#systemctl restart mysqld
 

 

 시간은 체크해  기본 시간대가 UTC로 

 

SELECT @@global.time_zone, @@session.time_zone;

 

mariaDB는 기본적으로 시스템 시간을 따라가고 있기 때문에 시스템 시간을 바꿔줄 필요가 있습니다. 일단, exit; 명령으로 mariaDB에서 나갑니다.

그 다음, 아래 명령어를 실행하여 서울 시간대로 변경해줍니다.

 

sudo timedatectl set-timezone 'Asia/Seoul'

date

 

 

timedatectl을 통해 서울로 시간대를 설정하고, date를 통해 설정이 되었는지를 확인합니다.

그 다음 아래 명령어를 통해 mariaDB를 다시 실행해줍니다.

그 후 접속하면 시간대가 제대로 설정되어 있음을 확인할 수 있습니다.

 

 

외부 접속 허용

 

1. 테이블 살펴보기
먼저, mysql에 들어가서 다음 방법을 이용해 접근 상태 확인.
mysql> use mysql;
mysql> select host, user, password from mysql.user;
출력된 정보를 확인해보면, localhost나 127.0.0.1만 등록이 되어있는 것을 확인 할 수 있는데, 외부에서 접근이 되게 하려면, 따로 등록이 필요.

 

2. 권한 설정 하기


설정을 할 때, 특정 IP나 특정 IP대역만 허용을 하거나, 전체 허용.


1) 특정 IP 접근 허용 설정
mysql> grant all privileges on DB명.테이블명 to 'root'@'220.000.00.000' identified by 'root의 패스워드';


2) 특정 IP 대역 접근 허용 설정
mysql> grant all privileges on DB명.테이블명  to 'root'@'220.000.%' identified by 'root의 패스워드';


3) 모든 IP의 접근 허용 설정
mysql> grant all privileges on DB명.테이블명  to 'root'@'%' identified by 'root의 패스워드'

 

3. 등록확인 후 적용시키기
등록이 끝났으면, 계정에 설정한 IP혹은 %가 등록 되어있는지 확인
mysql> select host, user, password from mysql.user;
mysql> flush privileges;

 

4. LISTEN IP 대역 변경

my.cnf 설정파일에서 bind-address라는 부분을 주석처리.
vi /etc/my.cnf
# bind-address = 127.0.0.1

5. mysql 재시작
주석처리가 끝났으면, mysql을 재시작.
/etc/init.d/mysqld restart

#systemctl restart mysqld

 

 

 

6.   mysql 리눅스 방화벽 설정 ( 3306 )

 

[root@localhost /]# iptables -I INPUT 1 -p tcp --dport 3306 -j ACCEPT

[root@localhost /]# service iptables save

iptables: 방화벽 규칙을 /etc/sysconfig/iptables에 저장 중: [ OK ]

[root@localhost /]# vi /etc/sysconfig/iptables

[root@localhost /]# service iptables restart

iptables: 체인을 ACCEPT 규칙으로 설정 중: filter [ OK ]

iptables: 방화벽 규칙을 지웁니다: [ OK ]

iptables: 모듈을 언로드하는 중: [ OK ]

iptables: 방화벽 규칙 적용 중: [ OK ]

 

 

 

 

 

 

 

 

about author

PHRASE

Level 60  라이트

한잔은 사람이 술을 마시고, 두잔은 술이 술을 마시고, 세잔은 술이 사람을 마신다. -법화경

댓글 ( 0)

댓글 남기기

작성