Linux/SQL

[DBMS] MariaDB 서버 시작 & UTF8 설정, 관리자 비밀번호 설정

GGkeeper 2021. 11. 24. 00:28

실습> mariaDB utf8 설정

/etc/my.cnf : MariaDB 설정파일

문자셋을 utf8로 설정한다.
# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
collation-server = utf8_general_ci
character-set-server = utf8
skip-character-set-client-handshake
bind-address = 127.0.0.1
  :
  :(생략)


실습> MariaDB 서버 시작/접속/종료

systemctl 로 실행하면 systemctl restart mariadb
service 로 실행하면 service mariadb restart
# service mariadb restart

# netstat -nltp | grep 3306
tcp     0   0 127.0.0.1:3306       0.0.0.0:*        LISTEN      3229/mysqld


mariadb를 설치하면 관리자 비밀번호가 설정되어 있지 않다.

-h 호스트 : 생략이 되면 기본은 localhost
-u 사용자 : 생략이 되면 현재 로그인 계정명으로 로그인 root
-p비밀번호 : 생략이 되면 없다는 것을 의미

DB관리자 : root

# mysql -h localhost -u root -p
Enter password: <-- 엔터
MariaDB [(none)]> quit

# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> status

mysql  Ver 15.1 Distrib 5.5.65-MariaDB, for Linux (x86_64) using readline 5.1

Connection id:          2
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         5.5.65-MariaDB MariaDB Server
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 10 sec

Threads: 1  Questions: 4  Slow queries: 0  Opens: 0  Flush tables: 2  Open tables: 26  Queries per second avg: 0.400


MariaDB [(none)]> quit

# ls -l /var/lib/mysql/mysql.sock
srwxrwxrwx. 1 mysql mysql 0 11월 22 17:09 /var/lib/mysql/mysql.sock
# file /var/lib/mysql/mysql.sock
/var/lib/mysql/mysql.sock: socket



실습> 관리자 비밀번호 설정하기

mysqladmin : MariaDB 서버를 관리하기 위한 클라이언트 

비번이 없는 상태에서 111111 로 변경한다. (단점 비번이 화면에 출력된다.)
# mysqladmin -u root -p password 111111
Enter password:  <-- 비밀번호가 없으므로 그냥 엔터

비밀번호가 111111 로 설정되어 있으므로 접속할 수 없다.
# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

이때는 아래처럼 -p 옵션을 주고 접속을 해야 한다.
# mysql -u root -p
Enter password:  <-- 111111 
MariaDB [(none)]> quit

111111 -> 222222 로 비번을 변경한다. (장점 비번이 화면에 출력되지 않는다.)
# mysqladmin -u root -p password
Enter password:  <-- 111111  현재 비밀번호 
New password:    <-- 222222  새로운 비밀번호
Confirm new password:  <-- 222222  확인 비밀번호

-h -u 를 생략하지 않은 경우
# mysql -h localhost -u root -p
Enter password: <-- 111111

-h 를 생략한 경우 (DB 서버가 mysql 클라이언트와 같은 로컬에 존재할 때 가능하다.)
# mysql -u root -p
Enter password: <-- 111111

-u 를 생략한 경우 (ssh로 접속한 사용자 계정명으로 접속한다.)
# mysql -p
Enter password: <-- 111111

-h, -u, -p를 생략하면 에러가 발생된다.
# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

$HOME/.my.cnf 에 설정파일을 넣어두면 mysql 접속할 때 항상 참고한다.
# vi .my.cnf
[client]
host = localhost
user = root
password = 111111

# chmod 600 .my.cnf -c
mode of `.my.cnf' changed from 0644 (rw-r--r--) to 0600 (rw-------)


MariaDB [(none)]> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

MariaDB [(none)]> quit