아래 3개의 PEM 파일을 사용하여 Windows에서 MySQL 데이터베이스에 성공적으로 연결하고 데이터 소스를 설정할 수 있었습니다. (여기서는 문제 없습니다)
- 클라이언트-key.pem
- 클라이언트 인증서.pem
- ca-cert.pem
하지만 Ubuntu Server 10.04에서 Python 코드를 통해 연결할 수도 있기를 원합니다. Python 및 MySQL Python 커넥터 설정이 있습니다. 그러나 예상한 대로 자격 증명만 연결하려는 시도는 실패합니다. 왜냐하면 이러한 PEM 인증서를 제출하는 인증이 필요하기 때문입니다.
**>>>** import mysql.connector
**>>>** cnx = mysql.connector.connect(user='odbc_user', password='mypassword',host='00.00.000.000',database='mydb')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.6/dist-packages/mysql/connector/__init__.py", line 179, in connect
return MySQLConnection(*args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/mysql/connector/connection.py", line 95, in __init__
self.connect(**kwargs)
File "/usr/local/lib/python2.6/dist-packages/mysql/connector/abstracts.py", line 719, in connect
self._open_connection()
File "/usr/local/lib/python2.6/dist-packages/mysql/connector/connection.py", line 210, in _open_connection
self._ssl)
File "/usr/local/lib/python2.6/dist-packages/mysql/connector/connection.py", line 144, in _do_auth
self._auth_switch_request(username, password)
File "/usr/local/lib/python2.6/dist-packages/mysql/connector/connection.py", line 177, in _auth_switch_request
**raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'odbc_user'@'hide.ec2' (using password: YES)**
**>>>**
검색을 기반으로 시도했지만 진전이 없었습니다.
- 3개 복사됨.pem파일을 제출하다/usr/share/ca-인증서/~처럼.crt문서.
- Ran은
sudo update-ca-certificates
이것을 다음에 추가합니다/etc/ssl/certs/ca-certificates.crt문서.
저는 Linux 전문가가 아니며, 제가 접하는 모든 것을 시도해 볼 뿐입니다. 따라서 이전에 이 작업을 수행한 사람이 있다면 귀하의 도움에 진심으로 감사하겠습니다.
답변1
>>>import mysql.connector
>>>cnx = mysql.connector.connect(user='odbc_user', password='password',host='00.00.00.000',database='database',
ssl_ca='/home/akelly/ca-cert.pem',
ssl_cert='/home/akelly/client-cert.pem',
ssl_key='/home/akelly/client-key.pem')