import pymysql.cursors

conn = pymysql.connect(
        host='aaaicu.synology.me', # MariaDB 서버
        user='dev_kyome',  # MariaDB 아이디
        password='password', # MariaDB 비밀번호
        db = 'database_name', # MariaDB 데이터베이스명
        charset='utf8' )
        
        

 

 

 

Python으로 MariaDB에 연결하려하니 콘솔에 아래와 같은 에러로그를 출력한다.

 

 

#에러 로그
pymysql.err.OperationalError: (1044, "Access denied for user 'dev_kyome'@'%' to database 'database_name'")

 

 

 

 

 

 

 

dev_kyome라는 계정이 데이터베이스에 접근할 권한이 없기 때문이다.

 

 

 

-- dev_kyome 사용자에게 권한을 부여한다.
-- GRANT ALL PRIVILEGES ON ~~로 해서 전체 권한을 줄 수도 있지만,
-- 개발용 계정이 너무 많은 권한을 갖고 있을 필요가 없기 떄문에 DML만 주기로 했다.

GRANT DELETE, INSERT, SELECT, UPDATE ON database_name.* TO `dev_kyome`@`%` IDENTIFIED BY 'password';

-- `dev_kyome`@`%`  에서 @ 뒤는 접속하는 호스트를 말하는데, 
-- 외부에서 접속해서 조작할 수 있는 권한을 주기 위해서 
-- %로 외부에서 접속할 수 있게 설정해주었다.



-- 권한 확인하기 
SHOW GRANTS FOR 'dev_kyome'@'%';

-- 'dev_kyome'@'%' 설정했던 호스트를 입력해야지만 확인 가능하다.

+-------------------------------------------------------------------------------------------------------------+
| Grants for 'dev_kyome'@'%';                                                                                 |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'dev_kyome'@'%' IDENTIFIED BY PASSWORD 'password'                                     |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `database_name`.* TO 'dev_kyome'@'%'                                |
+-------------------------------------------------------------------------------------------------------------+

 

 

 

 

 

+ Recent posts

"여기"를 클릭하면 광고 제거.