CentOS 7 Python 3 MairaDB 10.3 설치 및 해결책?
Python 강좌 듣고 장고 프레임웍 사용 방법을 초보 수준으로 배웠다.
MySQL 또는 MariaDB 를 사용할 경우가 훨씬 많을 거 같아서 기존에 PHP + MariaDB 10.3 이 설치된 환경에서 추가로 Python 과 MariaDB를 사용하려고 수차례 삽질을 한 끝에 확인한 것은 MariaDB 10.3 은 Python Django 프레임웍에서 사용하기가 어려운 줄 알았는데 추가 테스트 결과 yum 설치 순서를 변경하니까 MariaDB 10.3 사용하는데 문제가 없었다.
Python Django 프레임웍은 기본 yum 설치하는 것이 가장 속편하더라.
###### SQLite3 DB 설정 #################
cd /root
mkdir sqlite3
cd sqlite3
wget https://kojipkgs.fedoraproject.org//packages/sqlite/3.10.2/1.fc22/x86_64/sqlite-3.10.2-1.fc22.x86_64.rpm
wget https://kojipkgs.fedoraproject.org//packages/sqlite/3.10.2/1.fc22/x86_64/sqlite-devel-3.10.2-1.fc22.x86_64.rpm
sudo yum -y install sqlite-3.10.2-1.fc22.x86_64.rpm sqlite-devel-3.10.2-1.fc22.x86_64.rpm
sqlite3 –version
.quit
# 빠져나오는 것은 .quit
Python 에서는 mariadb 를 기본 yum 설치한 것은 제대로 인식하더라.
MariaDB 10.3 설치 상태에서 인식이 안되는 현상이 있어서 계속 확인 중이다.
아래 그림과 같이 yum list installed mariadb* 로 설치 상태를 확인하고 해보시라.
(실패 경우) 아래 그림과 위의 그림에서 maria-devel 이 다르다는 걸 알 수 있다.
MariaDB 사용을 위한 Python 설치 스크립트
# 아래 스크립트는 root권한 모드에서 복사해서 그대로 이용할수 있도록 만든 스크립트이다.
#은 root 권한에서는 주석이므로 앞에 주석에 해당되는 걸 없앴다.
# Python 모듈을 빌드하려면 개발 도구가 필요
# mariadb-devel 대신에 mysql-devel 로 된 것도 있는데 어떤 걸 해도 상관없다.
yum -y install epel-release
yum -y groupinstall 'Development Tools'
yum -y install yum-utils
yum -y install zip unzip wget mc git net-tools
yum -y install mariadb-devel
yum -y install gcc gcc-c++ python3 python3-devel openssl openssl-devel
yum -y install zlib zlib-devel libffi-devel
python3 -V
pip3 -V
# pip 설치는 가상환경 만들어서 하는 걸 권장하므로 아래 한줄은 주석처리했다. (이 단계에서 하지 말라는 의미)
# pip3 install --upgrade pip
# 현재 Alias 확인
ls -l /bin/python*
ln -s /bin/pip3.6 /bin/pip
##### 파이썬 가상환경 설정 ##################################################
mkdir -p /home/httpd/python/
cd /home/httpd/python/
python3 -m pip install virtualenv
python3 -m pip install --upgrade pip
# 가상환경 이름을 django 로 설정했는데 다른 명칭으로 변경해도 된다.
virtualenv django
source /home/httpd/python/django/bin/activate
pip3 install --upgrade pip setuptools
pip3 install pylint
pip3 install twisted
pip3 install Django
pip3 install djangorestframework
pip3 install mysqlclient
# pip3 install mysqlclient 이 한줄 때문에 엄청난 삽질과 시간낭비를 했다.
MariaDB 설치
# 기본 설치 명령어이다.
yum -y install mariadb mariadb-server
# 기본 yum 설치 대신에 MariaDB 10.4 버전 설치 시
vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
sudo yum makecache fast
yum -y install MariaDB-server MariaDB-client
######### MariaDB 세팅 #########################################
# 기본 yum 설치이든 MariaDB 10.4 를 설치했던 아래 과정은 동일하다.
# mariadb 부팅 시 자동 시작 설정
systemctl enable mariadb
# mariadb 시작
systemctl start mariadb
# mariadb 상태 확인
systemctl status mariadb
# Maria DB 보안 설정하기
mysql_secure_installation
관리자 비밀번호 지정 --> 이 과정은 유투브에 보면 많이 나오고, 내 블로그 MariaDB 10.3 설치 게시글에 나온다.
vi /etc/my.cnf.d/server.cnf
[mysqld]
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
vi /etc/my.cnf.d/mysql-clients.cnf
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
# MariaDB 서버 재시작
systemctl restart mariadb
mysql -u root -p
비밀번호
status
####### 실제 적용 예제 ######
##########################################
// DB 생성
create database django default character set utf8;
use mysql;
create user codefox@localhost identified by 'wonderfull!#%';
grant all privileges on django.* to codefox@localhost;
flush privileges;
quit
#######################################################################
# 방화벽 설정
yum -y install firewalld
# 방화벽 데몬 시작
systemctl start firewalld
# 서버 부팅 시 firewalld 데몬 자동 시작 설정
systemctl enable firewalld
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-service=mysql
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --add-port=8000/tcp
firewall-cmd --reload
firewall-cmd --list-all
#######################################################################
이제 장고 프레임웍에서 MairaDB 사용을 위한 준비는 된 셈이다.
MariaDB 10.3 제거 방법
이 CASE는 Python Django 사용을 위해 pip3 install mysqlclient 할 때 에러가 발생 시 하시라.
MariaDB 10.3 에 DB 테이블이 있다면 백업부터 하고 지워야 한다.
아래 스크립트는 root권한 모드에서 복사해서 그대로 이용할수 있도록 만든 스크립트이다. #은 root 권한에서는 주석이므로 앞에 주석에 해당되는 걸 없앴다.
systemctl stop mariadb
yum list installed mariadb*
yum -y remove MariaDB-client.x86_64 MariaDB-common.x86_64
yum -y remove MariaDB-compat.x86_64 MariaDB-server.x86_64
rm -rf /etc/yum.repos.d/MariaDB.repo
cd /var/lib/mysql/
rm -rf ib_logfile0 ib_logfile1 ibdata1
cd /var/lib
rm -rf mysql/