Ubuntu 14.04
에 Python
과의 연동을 위해서 MariaDB
를 설치 및 세팅을 하려는 과정에서
여러가지 오류들이 발생하는데 삽질을 한 부분들이 있어서 그부분들에 대해서 정리를 하고자 한다.
우선 MariaDB
는 설치과정과 몇개의 모듈들을 제외하고는 MySQL
과 비슷하다.
설치방법은 해당 링크 를 참조하자.
버전별로 설치 방법이 되어있다.
그럼 이제 설치를 완료 했다고 치고 삽질로 들어가 보자...
우선 우리는 MariaDB
와 python
을 연동 시킬 계획이니 MySQL-python
을 설치해야 한다.
pip install MySQL-python
설치가 잘되면 상관없는데 위에서 계속 말했든이 이 post는 삽질에 대한것이다. 그러니 삽질을 위한
오류가 발생을 해야한다. MySQL 인 경우에는 위의 MySQL-python
모듈이 문제 없이 설치될 수 있지만
우리는 MariaDB 이다. 아래의 패키지를 설치해주자.
apt-get install libmariadbclient-dev
이렇게 설치를 하고나서 다시 MySQL-python
을 설치.
근데 이번엔 아래와 같은 에러가 발생..
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -fno-omit-frame-pointer -g -pipe -Wno-uninitialized -g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing
_mysql.c:29:20: fatal error: Python.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1
그러면 이번에는 아래의 명령어로 python-dev
패키지를 설치
apt-get install python-dev
그 뒤에 다들 알듯이 MySQL-python
모듈을 설치... 해야 하는데 또 에러..
이번에는 이런 메시지가 출력
Command /.venv/bin/python -c "import setuptools, tokenize;
__file__='/.venv/build/mysql-python/setup.py';exec(compile(getattr(tokenize, 'open', open)
(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-iKaPZH-record/install-record.txt --single-version-externally-managed --compile --install-headers /.venv/include/site/python2.7 failed with error code 1 in /.venv/build/mysql-python
Storing debug log for failure in /.pip/pip.log
경로는 python의 virtualenv의 경로이므로 달라질 수 있지만 위와 유사한 오류가 나타나서 설치를 또
방해한다면 또 다른 패키지를 설치~ libssl-dev
apt-get install libssl-dev
그뒤에는 다들 알듯이 MySQL-python
설치. 현재로서는 해당 모듈을 설치하는데 본인은 저정도의 오류만을
발견했고 위의 방식으로 해결을 했다.
그럼 이제 편안하게 python에서 mariaDB를 연동시키면 된다.
연동하기전에 MariaDB 내부에 database를 만들자. root 권한으로 들어가서 계정도 만들어주고 db도 만들어 주고~
mysql -u root -p # 왜 mariadb인데 mysql로 실행하는지는 묻지 말자...
아무튼 위의 명령어를 입력하면~ 또 Error... 위에서도 말했듯이 이 post의 목적은 python과 MariaDB를
연동하는 것이 주가 아닌 연동을 위한 세팅과정에서의 삽질이 주다...
이번에는 이런 error 가 발생 (무조건 발생하는 것은 아니다.. error가 발생하지 않으면 더할 나위 없이 좋지...)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
해결 방법은 아래의 링크 에 자세히.
touch /var/run/mysqld/mysqld.sock
chown mysql /var/run/mysqld/mysqld.sock
service mysql restart
3단계의 방법으로 문제를 해결. 이유와 왜 그런지에 대해서는 위에 선언한 링크로 가면 자세히 나온다.
다시 mysql -u root -p
명령어를 입력하고 비밀번호를 입력하면 mariadb가 실행되면서 db 생성 및
테이블의 생성이 가능해진다.
여기까지 해결을 했으면 그다음의 python과 db의 연동은 다음 post에서 작성을 하겠다.
궁금한점이나 수정할 부분 있으면 댓글로 남겨주세요~
'IT/프로그래밍' 카테고리의 다른 글
openstack contributor 도전하기 (0) | 2016.07.19 |
---|---|
IE8 설치 후 Visual Studio2008에서 에러 발생하는 문제!~ (2) | 2009.05.10 |
IronPython 한글판에서 사용하는 법!.. (0) | 2009.05.03 |