我试图使用Docker连接Mysql和Django,但我收到了这个错误
2061, 'RSA Encryption not supported - caching_sha2_password plugin was built with GnuTLS support'.
我尝试更改用户并创建数据库
// create a user //
CREATE USER 'user'@'localhost' IDENTIFIED BY 'user';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;
CREATE USER 'user'@'%' IDENTIFIED BY 'user';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;
// create a database //
CREATE DATABASE user_db;
但仍然显示sqme错误消息
中settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'user_db',
'USER': 'user',
'PASSWORD': 'user',
'HOST': 'db',
'PORT': '3306',
}
}
在对接合成中:
db:
image: mysql:latest
environment:
MYSQL_DATABASE: 'user_db'
MYSQL_USER: 'user'
MYSQL_PASSWORD: user
MYSQL_ROOT_PASSWORD: root
volumes:
- ./data/mysql/db:/var/lib/mysql
ports:
- 3306:3306
谢谢你帮助。
2条答案
按热度按时间5rgfhyps1#
我已经解决了这个问题,将连接器改为
mysql-connector-python==8.0.26
,而不是mysqlclient==2.0.3
此外,连接设置
kcrjzv8t2#
似乎是Debian版本的问题。将“FROM”python图像设置为3.10.8-slim-bullseye允许我获得:caching_sha2_password、MySql-8、mysqlclient原生驱动程序。