리눅스 MySQL 설치 - linugseu MySQL seolchi

오늘은 Linux 환경에 MySQL을 설치하고 외부에서 port를 사용하여 접근할 수 있도록 환경세팅을 진행해보도록 하겠습니다. 

1. MySQL 설치 (설치여부 확인) 

mysql 서버와 클라이언트 설치

sudo apt-get install mysql-server mysql-client

# mysqladmin 명령어 입력하여 설치여부 확인.
  1. 설치 중, MySQL의 root 계정 패스워드를 입력하는 절차가 나타나는데, 사용할 root 계정 패스워드를 입력합니다.
  2. 설치 후, MySQL 설정파일 (/etc/mysql/my.cnf)에서 bind-address 부분을 주석처리합니다. 
# bind-address = 127.0.0.1

2. 데이터 베이스 생성 및 접속하기

데이터 베이스 생성 및 접속 (root 계정 활용) 

# 데이터 베이스 생성 
# ( 데이터베이스명: test1, 계정 : root ) 
mysqladmin -u root create test1 -p

# 데이터 베이스 접속
mysql -u root -p test1

# 데이터 베이스 접속 후 테이블 확인. (; 사용 필수)
show tables ;

3. 지원되는 Character_set 확인 및 설정

현재 mysql에서 사용가능한 Character set을 확인한 후, 기설정되어 있는 세팅을 확인합니다. 

# 지원되는 캐릭터 셋 확인. 	
mysql> show character set;

# 현재 설정된 세팅 확인. 	
mysql> show variables like 'char%';

# 현재 상태 및 세팅 확인
mysql> status

결과 예시. 

리눅스 MySQL 설치 - linugseu MySQL seolchi

UTF-8 으로 캐릭터 셋 변경하기

  • 정신건강을 위해서는 UTF-8로 기본세팅을 진행하는 것이 좋습니다.(Mysql version 에 따라 default 설정) 
  • 만약 아래의 방법대로 기본 환경설정이 안된다면 참고 - [자세히]

ex) vi /etc/mysql/my.cnf

... 

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

설정 이후, MySQL을 재시작합니다. 이후 status 명령어로 바뀐내용을 확인합니다. 

# 재시작 
$ /etc/init.d/mysql restart

mysql> status 

Connection id:          2
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.7.35-0ubuntu0.18.04.2 (Ubuntu)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:            /var/run/mysqld/mysqld.sock
Uptime:                 6 sec

4. 테이블 생성하기 , 사용자 추가하기 

Create Table 문을 사용해서 새로운 테이블을 생성해봅니다. 

mysql> create table users (
id varchar(10) primary key,
name varchar(20) not null,
password varchar(10) not null
);

# table 생성 결과 확인. 
mysql> show tables;

# select 문
mysql> select * from user;

사용자 추가하기 ( 아이디: alex / 패스워드 : tt1tt ) > test1 데이터베이스에 대한 권한 '모두'를 준다. 

mysql> GRANT ALL PRIVILEGES ON test1.* TO alex@localhost IDENTIFIED BY 'tt1tt' WITH GRANT OPTION;

5. 테이블 정보 확인

mysql> desc users;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | varchar(10) | NO   | PRI | NULL    |       |
| name     | varchar(20) | NO   |     | NULL    |       |
| password | varchar(10) | NO   |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

6. root 계정 초기 비밀번호 설정 

('1234' 부분을 사용할 패스워드로 변경)

# DB 변경
mysql> use mysql 

# root 계정 패스워드 변경 
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234'

7. MySQL port 설정

MySQL는 3306으로 기본 포트가 설정되어있습니다. 포트 변경을 하려면 mysqld.cnf 파일에서 port 부분을 수정하면 됩니다.

ex) vi /etc/mysql/mysql.conf.d/mysqld.cnf

리눅스 MySQL 설치 - linugseu MySQL seolchi

하지만 MySQL 5.6 이상을 지원하는 app 의 경우 MariaDB 5.5 또는 MariaDB 10 이 제대로 도는지 확인하기가 힘드므로 마음고생하지 말고 그냥 권장하는 MySQL 버전을 설치하도록 하자.


RHEL/CentOS 에 수동 설치

MySQL 5.6 부터 yum 을 통한 설치를 지원하고 있다. 

먼저 http://dev.mysql.com/downloads/repo/yum/ 에 연결하여 사용하는 리눅스 배포판과 버전에 맞는 저장소 설정 rpm 파일을 다운로드 받는다.

  1. 모든 패키지가 포함된 bundle 을 다운받는다.

    MySQL 5.7

    wget --no-check-certificate  https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar

    CODE

    wget --no-check-certificate  https://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.40-1.el7.x86_64.rpm-bundle.tar

    CODE

  2. 번들 압축 해제

    tar xvf *bundle.tar

    CODE

  3. yum 으로 설치

    sudo yum localinstall MySQL-server* MySQL-client*

    CODE

Yum 을 통한 설치

MySQL 5.6 부터 yum 을 통한 설치를 지원하고 있다. 

먼저 http://dev.mysql.com/downloads/repo/yum/ 에 연결하여 사용하는 리눅스 배포판과 버전에 맞는 저장소 설정 rpm 파일을 다운로드 받는다.


RHEL / CentOS 7 

MySQL 5.7

MySQL 5.7

rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

BASH


MySQL 5.6

MySQL 5.6

rpm -ivh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

BASH


RHEL 6 / CentOS 6 / Amazon Linux

MySQL 5.7

rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm

CODE


MySQL 5.6

rpm -ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

CODE



이제 yum 명령어로 mysql 을 설치할 수 있다. yum 을 통해 제공되는 패키지명은 mysql-community 로 시작하므로 yum search mysql-community 명령어로 전체 패키지 목록을 확인해 보자.