2~3년에 한번 가량으로 CentOS를 새로 설치하는데…
매번 새로 설치해할때마다 어떻게 설정/세팅했는지 기억이 안나 고생하네요.
그래서 이번만큼은 새로 설치하면서 흔적을 남겨봅니다.
centos 7.0 설치 후 MariaDB 설치/설정 방법입니다.
※ 참고로 필자도 리눅스 잘 모릅니다. 구글링의 해택을 누릴뿐…
MariaDB 설치를 위한 사전 작업
MariaDB를 참조해보면 Stable version 설치 방법이 있습니다.
주소 – https://downloads.mariadb.org/mariadb/repositories
위에 싸이트를 참조해~ 입력 이후 아래 내용을 입력합니다.
vi /etc/yum.repos.d/MariaDB.repo
# MariaDB 10.1 CentOS repository list - created 2016-10-01 19:32 UTC # http://downloads.mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
그리고 저장! 저장은 ‘esc’ 키 입력 후 ‘:wq’ 혹은 ‘:w’ 이후 ‘:q’!
이제 설치 준비는 끝났으니 설치를 시작합시다!
MariaDB 설치
sudo yum install MariaDB-server MariaDB-client
여기까지가 mariadb 홈페이지에 나온 설치 매뉴얼 내용!
MariaDB 실행 방법
systemctl start mariadb
MariaDB 접속!
제대로 설치가 되었는지 확인해 봅시다.
참고로 mariadb가 mysql에서 파생해서 그런지 접속은 mysql과 동일합니다.
mysql –u root mysql
제대로 접속이 되면 아래와 같이 화면이 바뀜!
Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 2 Server version: 10.1.18-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement. MariaDB [mysql]> |
그러면 관리자 패스워드를 변경합시다.
# SET PASSWORD FOR root@localhost=PASSWORD(‘패스워드’);
# flush privileges; ← 내부 캐쉬 메모리 초기화!
서비스 등록
제대로 설치가 된것을 확인했으니, 이제 서비스에 등록합시다.
systemctl enable mariadb
systemctl start mariadb
db 확인
mysql 접속 이후 ‘show databases;’를 통해 목록을 확인하면
MariaDB [mysql]> show databases; +——————–+ | Database | +——————–+ | information_schema | | mysql | | performance_schema | | test | +——————–+ 4 rows in set (0.00 sec) |
위와 같이 사용한적이 없는 테이블도 뜹니다.
그러니 바로 지웁시다!
MariaDB > drop database test;
MariaDB > flush privileges;
MariaDB (mysql) 접속 방법
mysql -h 접속 주소 -u 아이디 -p
예제 ) mysql -h localhost -u root -p
비밀번호 분실 시 비밀번호 초기화 방법
서비스를 멈추고 안전모드 실행!
systemctl stop mysql
/usr/bin/mysqld_safe –skip-grant mysql -u root -p
패스워드를 물으면 그냥 엔터를 입력해 mysql 모드 진입!
mysql > use mysql
mysql > update user set password=password(‘신규 패스워드’) where user=’root’;
mysql > flush privileges;
mysql > exit;
mysql 모드에 나왔으니 서비스 재실행~
# systemctl reload mysql
※ 재실행이 제대로 안되서 reboot가 필요할때도 있음.
DB 한글 값이 ???로 출력되는 경우
mysql -u 계정 -p
를 통해 로그인 된 이후
MariaDB> show variables like ‘c%’; 를 입력한다.
MariaDB [(none)]> show variables like ‘c%’; +————————–+—————————-+ | Variable_name | Value | +————————–+—————————-+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | | collation_connection | utf8_general_ci | | collation_database | latin1_swedish_ci | | collation_server | latin1_swedish_ci | | completion_type | NO_CHAIN | | concurrent_insert | AUTO | | connect_timeout | 10 | +————————–+—————————-+ |
‘character_set_database’이 ‘utf8’이 아니라 ‘latin1’이라 그럼…
vi /ect/my.cnf 파일을 수정
# # This group is read both both by the client and the server # use it for options that affect everything # [client-server] # [mysqld] |
systemctl restart mysql 이후 mysql을 다시 실행 시키고 다시 mysql로 접속 후 MariaDB> show variables like ‘c%’; 를 확인해보면
MariaDB [(none)]> show variables like ‘c%’; +————————–+—————————-+ | Variable_name | Value | +————————–+—————————-+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | | collation_connection | utf8_general_ci | | collation_database | utf8_general_ci | | collation_server | utf8_general_ci | | completion_type | NO_CHAIN | | concurrent_insert | AUTO | | connect_timeout | 10 | +————————–+—————————-+ |
전부 utf8로 뜨는걸 볼 수 있습니다. 해결!