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 테이블명;
'프로그래밍 > C++' 카테고리의 다른 글
Visual Studio 2019 멤버함수 보기 설정 (0) | 2020.12.23 |
---|---|
비쥬얼 스튜디오 2019 단축키 재정리 (0) | 2020.12.19 |
Visual Studio, Visual Assist 단축키 모음 (2) | 2020.02.28 |
Gitlab CI 조건문과 같은 결과 사용 스크립트 (0) | 2019.10.28 |
WinDbg 어플리케이션 크래쉬 발생 시 자동으로 붙게 하기 (0) | 2019.06.12 |
댓글