반응형
vscode에서 extention 없이 터미널 코드로 mariadb 연결해서 설치하는 방법.
pip install mariadb를 하면 에러가 나고 설치되지 않는다.
해결하기 위해서 여러가지 방법 시도.... ㅠ 전부 에러....
그러다가 어찌어찌 설치한 경로를 포스팅해본다
mariadb를 설치하기 위해서는 mariadb connector c설치가 필요
디폴트로 설치되어 있는 버전보다 상위 버전의 설치가 필요함.
수동으로 설치하기 위해서 wget 압축파일 다운 경로를 해서 설치해준 뒤, 압축 해제한다.
wget https://downloads.mariadb.com/Connectors/c/connector-c-3.3.1/mariadb-connector-c-3.3.1-src.tar.gz
tar -xzvf mariadb-connector-c-3.3.1-src.tar.gz
압축하일을 설치한 곳으로 경로 이동하고, build라는 폴더를 만들어서 이 경로로 이동 그리고 cmake .. 코드 실행하고 make 코드를 실행한다.
cd mariadb-connector-c-3.3.1-src
mkdir build
cd build
cmake ..
make
여기서 계속 에러가 발생해서 시간 소모됨. 나한테 발생한 에러는 이런 식의 에러였음.
1%] Building C object CMakeFiles/dialog.dir/plugins/auth/dialog.c.o
[ 1%] Building C object CMakeFiles/dialog.dir/libmariadb/get_password.c.o
[ 2%] Linking C shared module dialog.so
[ 2%] Built target dialog
[ 3%] Building C object CMakeFiles/client_ed25519.dir/plugins/auth/ed25519.c.o
[ 4%] Building C object CMakeFiles/client_ed25519.dir/plugins/auth/ref10/fe_0.c.o
[ 4%] Building C object CMakeFiles/client_ed25519.dir/plugins/auth/ref10/fe_isnegative.c.o
[ 5%] Building C object CMakeFiles/client_ed25519.dir/plugins/auth/ref10/fe_sub.c.o
[ 6%] Building C object CMakeFiles/client_ed25519.dir/plugins/auth/ref10/ge_p1p1_to_p2.c.o
[ 6%] Building C object CMakeFiles/client_ed25519.dir/plugins/auth/ref10/ge_p3_to_cached.c.o
[ 7%] Building C object CMakeFiles/client_ed25519.dir/plugins/auth/ref10/open.c.o
In file included from /home/ubuntu/database-1/mariadb-connector-c-3.3.1-src/plugins/auth/ref10/crypto_hash_sha512.h:2,
from /home/ubuntu/database-1/mariadb-connector-c-3.3.1-src/plugins/auth/ref10/open.c:3:
/home/ubuntu/database-1/mariadb-connector-c-3.3.1-src/include/ma_crypt.h:75:1: error: unknown type name ‘MA_HASH_CTX’; did you mean ‘MA_HASH_MD5’?
75 | MA_HASH_CTX *ma_hash_new(unsigned int algorithm, MA_HASH_CTX *ctx);
| ^~~~~~~~~~~
| MA_HASH_MD5
/home/ubuntu/database-1/mariadb-connector-c-3.3.1-src/include/ma_crypt.h:75:50: error: unknown type name ‘MA_HASH_CTX’; did you mean ‘MA_HASH_MD5’?
75 | MA_HASH_CTX *ma_hash_new(unsigned int algorithm, MA_HASH_CTX *ctx);
| ^~~~~~~~~~~
| MA_HASH_MD5
/home/ubuntu/database-1/mariadb-connector-c-3.3.1-src/include/ma_crypt.h:84:19: error: unknown type name ‘MA_HASH_CTX’; did you mean ‘MA_HASH_MD5’?
84 | void ma_hash_free(MA_HASH_CTX *ctx);
| ^~~~~~~~~~~
| MA_HASH_MD5
/home/ubuntu/database-1/mariadb-connector-c-3.3.1-src/include/ma_crypt.h:97:20: error: unknown type name ‘MA_HASH_CTX’; did you mean ‘MA_HASH_MD5’?
97 | void ma_hash_input(MA_HASH_CTX *ctx,
해결하기 위해서 sudo apt install libssl-dev 이 코드로 먼저 libssl-dev 이걸 인스톨 한 뒤 실행. 그러면 에러 없이 make 코드가 끝난다
sudo apt install libssl-dev
...
[ 97%] Built target dyncol
[ 98%] Building C object unittest/libmariadb/CMakeFiles/async.dir/async.c.o
[ 98%] Linking C executable async
[ 98%] Built target async
[ 98%] Building C object unittest/libmariadb/CMakeFiles/t_conc173.dir/t_conc173.c.o
[ 99%] Linking C executable t_conc173
[ 99%] Built target t_conc173
[ 99%] Building C object unittest/libmariadb/CMakeFiles/rpl_api.dir/rpl_api.c.o
[100%] Linking C executable rpl_api
[100%] Built target rpl_api
이렇게 1%부터 100%까지 완료됨
그 뒤에는
sudo make install
sudo apt install mariadb-server
#db 실행
sudo systemctl start mariadb
py파일에서 내가 가진 db 정보로 mariadb에 연결하려고 할 때, import maradb를 사용한다.
이 때, Connector C 버전이 내가 설치한 버전과 맞지 않는경우,
한번 libmariadb-dev를 제거 한 뒤 재설치 해주고 mariadb를 업그레이드 해주면 실행됨.
# 기존 MariaDB Connector/C 제거
sudo apt remove libmariadb-dev
# MariaDB Connector/C 3.3.1 설치
sudo apt install libmariadb-dev
pip install --upgrade mariadb
반응형
'DS > Python' 카테고리의 다른 글
Pandas ParserError EOF 해결법 (0) | 2023.10.31 |
---|---|
[Python] VSCODE에서 원하는 버전의 Cuda-toolkit 설치 (0) | 2023.09.29 |
[Python] KMeans 사용시 맥북에서 에러 나는 경우 (0) | 2023.06.08 |
[Python] skimr 대신 skimpy (0) | 2023.06.01 |
[Python] Selenium 이용한 Googlemap 크롤링 (0) | 2023.05.25 |