IT 개발노트

MariaDB 설치 본문

기초튼튼/DataBase

MariaDB 설치

limsungju 2019. 9. 2. 11:48

의존 라이브러리 및 유틸리티 설치 :
# yum -y install gcc gcc-c++ libtermcap-devel gdbm-devel zlib* libxml* freetype* libpng* libjpeg* iconv flex gmp ncurses-devel cmake.x86_64 libaioyum install -y gcc gcc-c++ libtermcap-devel gdbm-devel zlib* libxml* freetype* libpng* libjpeg* iconv flex gmp ncurses-devel cmake.x86_64 libaio

# yum -y install gmp-devel

# yum -y install gnutls-devel

# cd nettle-2.7.1
# ./configure --prefix=/usr/local
# make
# make install

# wget https://www.gnupg.org/ftp/gcrypt/gnutls/v3.3/gnutls-3.3.30.tar.xz
# xz -d gnutls-3.3.3.tar.xz
# tar -zxvf gnutls-3.3.30.tar

계정생성 :
# groupadd mysql
# useradd -M -g mysql mysql

소스다운로드 :
# wget https://downloads.mariadb.org/interstitial/mariadb-10.1.41/source/mariadb-10.1.41.tar.gz

압축해제 :
# tar -zxvf mariadb-10.1.41.tar.gz
# cd mariadb-10.1.41

컴파일 환경설정
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/itcen/mariadb -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DMYSQL_DATADIR=/usr/local/itcen/mariadb/data -DMYSQL_UNIX_ADDR=/usr/local/itcen/mariadb/tmp/mariadb.sock -DINSTALL_SYSCONFDIR=/usr/local/itcen/mariadb/etc -DINSTALL_SYSCONF2DIR=/usr/local/itcen/mariadb/etc/my.cnf.d -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_ARIA_STORAGE_ENGINE=1 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATEDX_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=bundled -DWITH_ZLIB=system

# make
# make install

설치 디렉토리 권한 변경
# chown -R mysql:mysql /usr/local/itcen/mariadb

기본 데이터베이스 생성
# cp -R /usr/local/itcen/mariadb/etc/my.cnf.d /etc
# /usr/local/itcen/mariadb/scripts/mysql_install_db --user=mysql --basedir=/usr/local/itcen/mariadb/ --defaults-file=/usr/local/itcen/mariadb/etc/my.cnf --datadir=/usr/local/itcen/mariadb/data

temp 디렉토리 생성
# mkdir /usr/local/itcen/mariadb/temp
# chown mysql:mysql /usr/local/itcen/mariadb/temp

server 구동
# /usr/local/itcen/mariadb/bin/mysqld_safe &

root 패스워드 설정
/usr/local/itcen/mariadb/bin/mysqladmin -u root password 'mariadb'

root 접속
mysql -u root -D mysql -p/usr/local/itcen/mariadb/bin/mysql -u root -D mysql -p

# show tables;ㄴ
# show databases;

/usr/local/itcen/mariadb/bin path 설치

Daemon Script 작성
# cp /usr/local/itcen/mariadb/support-files/mysql.server /etc/init.d/mariadb
# chkconfig mariadb on
# /etc/init.d/mariadb start
# sync
# reboot

MariaDB PATH 설정
# mariadb
# export PATH=$PATH:/usr/local/itcen/mariadb/bin
# source /etc/profile

> use mysql;
> select host, user, password from user;

MariaDB 나가는 명령어
> quit

MariaDB 멀티라인으로 명령어 실행중 취소하는 방법
-> \c

Database 만드는 방법
> create database webdb;

Database 지우는 방법
> drop database webdb;

Database 확인방법
> show databases;

table 확인방법
> show tables;

table 만들기
> create table pet(name varchar(20), owner varchar(20), species varchar(20), gender char(1), birth date, death date);

스키마 확인방법
> desc pet;

table에 값 추가
> insert into pet values('현정이', '임성주', '미친개', 'm', '2014-12-25', null);

table에 txt파일 값들 한번에 insert하기
> load data local infile '/home/webmaster/pet.txt' into table pet;

null값을 출력하고 싶을때
> select name, birth, gender, death from pet where death is null;

null값을 빼고 출력하고 싶을때
> select name, birth, gender, death from pet where death is not null;

like절 사용
> select name, owner from pet where name like 'b%'; : name이 b로 시작하는 애
> select name, owner from pet where name like '_y'; : name 두번째 글자가 y로 끝나는 애
select name, owner from pet where name like '__'; : name 두 글자가 인애

row 카운팅 하는 방법
> select count(*) from pet;   : count는 *로 검색하는게 좋다 ( 특정 컬럼을 지정해주면 null값이 빠질수도 있기 때문 )

새로운 사용자 생성 (인증)
> create user 'webdb'@'192.168.1.%' identified by 'webdb';  ( 192.168.1 로 시작하는 모든 IP에서 접근 가능하다는 뜻. )
create user 'webdb'@'localhost' identified by 'webdb';

권한부여(권한)
> grant all privileges on webdb.* to 'webdb'@'192.168.1.%';
> grant 권한 privileges on db.table to 'webdb'@'192.168.1.%';
grant all privileges on webdb.* to 'webdb'@'localhost';

권한부여한것을 넣어주는것.
> flush privileges;

권한확인하기
> show grants for 'webdb'@'192.168.1.%';

webdb유저에 webdb데이터베이스에 접속하는데 비밀번호는 물어본다.
# mysql -u webdb -D webdb -p

mysql workbench download 방법
https://dev.mysql.com/downloads/file/?id=488566

-> No thanks, just start my download. 클릭

# vi /etc/sysconfig/iptables
port 3306열기
# /etc/init.d/iptables restart

mariadb port설정 바꾸기
# vi /etc/my.cnf

DB백업본 연결하는 방법
employee_db.zip root 홈디렉토리로 올리기
# unzip emunzip employees_db.zip

# cd employees_db
# mysql -p < employees.sql

MariaDB 비밀번호 입력

MySQL Workbench
Connection Name : 연결할 이름
Hostname : 접속할 IP
Port : 접속할 Port번호
Username : db유저명
Default Schema : Database이름

elcipse -> General -> Project생성 -> Folder생성 -> 컴파일할 파일 제외하고 다 ignore하고 commit해서 올리기