파이썬/Python 환경설정

CentOS 7 Python 3 MairaDB 10.3 설치 및 해결책?

Link2Me 2021. 7. 18. 08:21
728x90

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/

728x90