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'@'%' |
+-------------------------------------------------------------------------------------------------------------+
'데이터베이스 > MariaDB & MySQL' 카테고리의 다른 글
MariaDB(MySQL) 한글 깨짐 (한글 물음표 해결!) (0) | 2019.12.17 |
---|---|
MariaDB(MySQL) 컬럼명, 타입 변경 (0) | 2019.12.13 |
MariaDB(MySQL) Data too long for column 에러 (0) | 2019.07.29 |
Python으로 MariaDB(MySQL) 접속 에러 - 외부 접속계정 추가 (0) | 2019.07.22 |