본문 바로가기
프로그래밍/C++

CentOS8 Mysql 설치 및 연동 절차

by 건우아빠유리남편 2020. 11. 10.
반응형

CentOS8 Mysql 설치 및 연동 절차

 

* mysql 레포지토리 설치$>wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm


※ wget을 모를 경우 yum install -y wget

$>rpm -Uvh mysql80-community-release-el8-1.noarch.rpm


> 설치 확인

$>yum repolist enabled | grep mysql


* mysql 설치
> 기존 모듈 사용안함. 버전차이가 있을 수 있기 때문에 사용안하고 새로 설치함.

$>yum module disable mysql


> mysql  및 개발용 lib 설치

$>yum install -y mysql-community-server $>yum install -y mysql-connector-c++-devel


* mysql 시작

$>service mysqld start

※참고> 동작 여부 확인은 service mysqld status

> MYSQL 환경변수 변경해주어 비밀번호 없이 root 로그인. 완료 시에는 MYSQLD_OPTS="" 으로 재실행

 $>systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"  $>systemctl restart mysqld


* mysql 비밀번호 초기화

$>mysql mysql>UPDATE mysql.user SET authentication_string=null WHERE User='root'; mysql>flush privileges; mysql>quit; $>systemctl set-environment MYSQLD_OPTS="" $>systemctl restart mysqld

$>vi /etc/my.cnf 파일에 아래 내용을 추가

[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid validate_password.policy=LOW default_password_lifetime=0 validate_password.length=0 validate_password.special_char_count=0 validate_password.mixed_case_count=0 validate_password.number_count=0 #skip-networking bind-address=0.0.0.0 port=3306


* 참고> 현재 비번 보기 (centos8)
 select host, user, authentication_string from mysql.user;

* mysql 보안설정(최초 비번없기 때문에 Enter > 비번 교체>기본계정 삭제 y > 외부root 로긴 허용안함 n > test DB 삭제 y > privileges 테이블 재시작 y

$>mysql_secure_installation


* odbc 설치 (DB 드라이버 및 라이브러리)

unixodbc 빌드 $ wget http://www.unixodbc.org/unixODBC-2.3.4.tar.gz $ tar xvf unixODBC-2.3.4.tar.gz $ cd unixODBC-2.3.4 $ ./configure $ make $ make install # 버전 확인 $ odbcinst -j unixODBC 2.3.4 DRIVERS............: /usr/local/etc/odbcinst.ini SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources USER DATA SOURCES..: /root/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8

> make 가 설치 안되어있을 경우

$>yum -y install make


* mysql odbc 설치

$>yum install -y mysql-connector-odbc


* 접근 권한 허용

> 3306 포트로 tcp 서비스 중인지 확인 (3306 서비스가 동작중인지 체크)

 $>netstat -tnl

동작중이지 않을 경우 /etc/my.cnf 파일에 아래 내용을 추가

[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid validate_password.policy=LOW default_password_lifetime=0 validate_password.length=0 validate_password.special_char_count=0 validate_password.mixed_case_count=0 validate_password.number_count=0 #skip-networking bind-address=0.0.0.0 port=3306

> mysql 접속 후

mysql>create user 'root'@'%' identified by '비밀번호'; mysql>grant all privileges on *.* to 'root'@'%'; mysql>flush privileges;


참고>--아래 명령은 안먹을 수 있다.(참고만 할 것)
mysql>grant all privileges on*.* to 'root'@'%' identified by '비밀번호';
mysql>grant all privileges on *.* to root@192.168.150.215identified by '비밀번호';

* DB 스키마 생성
> mysql 실행. mysql 에 접속 하여 아래 쿼리 실행.

mysql>create database iadsdb; mysql>quit;    // mysql에서 나옴.

> 스키마 생성 쿼리 실행. 아래 명령을 실행하기 전에 iadsdb_mysql.sql 스키마 파일 생성

$>mysql -u root -p iadsdb < iadsdb_mysql.sql


※ 소스에서 접근 가능. 소스에서 접근할 때는 libmyodbc8a.so로 설정해주어야 함.
윈도우에서 접근 시에는 아스키코드로 사용. 드라이버 경로 : /usr/lib64/libmyodbc8a.so

* 현재의 odbc 설정 경로 확인

$> odbcinst -j


※ 한글이 문제가 될 경우 테이블의 인코딩을 체크한다. (mariadb의 경우에는 기본 인코딩이 latin1로 되어 있기 때문에 변경이 필요함)

mysql>SELECT default_character_set_name, DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA mysql>show create table 테이블명;

반응형

댓글