본문 바로가기
프로젝트(진행중)/MySQL

Pymysql - Maria DB 연결 오류(Err 99)

by 일말고프로젝트 2022. 1. 2.

퀀트를 공부하다 백테스팅 환경을 구축해보기 위해 파이썬에 Maria DB를 연결하려 했다. 세상 쉬운 일이라 생각했지만

극악의 오류로 난항을 맞았다. 해결한 것은 아니지만 너무 많은 시도를 하느라 까먹어 한 것들과 실패한 것들을 정리하며 얻은 것, 또 해볼 것들을 정리하기 위해서 기록한다.

 

1. 문제 상황

 

(2003, "Can't connect to MySQL server on 'localhost' ([Errno 99] Cannot assign requested address)")

 

2. 접근

 

(1) root 계정 비밀번호 오류

 

USE mysql
SHOW TABLEs LIKE 'user';

SELECT HOST, user, PASSWORD FROM user;

UPDATE user SET PASSWORD=PASSWORD('ㅌㅌㅌ') WHERE user = 'root';

이렇게 비밀번호를 바꿔봤지만, 아래와 같은 오류가 떴다.

 

구글링 해보니 user가 테이블이 아니라 view로 바뀌었기 때문에 발생한 오류였다.

MariaDB-10.4+ the mysql.user is a view rather than a table. Its recommend to stop copying off old blogs to do any authentication relates changes in MySQL and MariaDB, the mechanisms are being updated and no longer apply. Always check the official documentation. Use SET PASSWORD or ALTER USER to manage user authentication. Also modifying a user/host component of the username will put triggers, events, plugins, grants, roles etc out of sync with the combined username (aka broken). So just DROP/CREATE users rather than manipulate them.

 

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('rㅌㅌㅌ');

FLUSH PRIVILEGES;

하지만 실패..

 

(2) 계정 생성후 시도

 

CREATE user 'moon'@'%' IDENTIFIED BY 'ㅌㅌㅌ';

GRANT ALL PRIVILEGES ON investar.* TO 'moon'@'%';

 

역시 실패..

하지만 알게 된 것들이 있다.

 

mysql은 보안상 기본적으로 외부접속을 허용하지 않기 때문에
계정을 생성할떄 특정 IP 혹은 localhost 를 지정하거나 %를 지정하여 외부접속을 허용할 수 있다.

user1 계정 생성
# create user 
'계정아이디'@'접속위치'
 identified by '패스워드';
ex. create user 
'user1'@'%'
 identified by 
'user!@#$'

;출처: https://sehoonoverflow.tistory.com/6 [세훈오버플로우]

colab을 사용하고 있기 때문에 localhost가 아닐수도 있겠다는 생각이 들었다. 

 

(3) 파이참 사용

해피엔딩...

'프로젝트(진행중) > MySQL' 카테고리의 다른 글

칼퇴를 지켜준 ChatGPT 활용 후기  (0) 2023.02.17
서브쿼리와 With절 쓰임새 차이  (0) 2022.10.02
SQL 고득점 Kit - 3  (0) 2021.11.27
SQL 고득점 Kit - 2  (0) 2021.11.21
SQL 고득점 Kit - 1  (0) 2021.11.17

댓글