首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不支持RSA使用django mysql和docker的caching_sha2_password

不支持RSA使用django mysql和docker的caching_sha2_password
EN

Stack Overflow用户
提问于 2021-08-08 13:05:20
回答 1查看 2.4K关注 0票数 4

我正在尝试使用docker连接Mysql和django,我得到了这个错误

代码语言:javascript
复制
2061, 'RSA Encryption not supported - caching_sha2_password plugin was built with GnuTLS support'.

我尝试使用以下命令更改用户和创建数据库

代码语言:javascript
复制
// 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中

代码语言:javascript
复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'user_db',
        'USER': 'user',
        'PASSWORD': 'user',
        'HOST': 'db',
        'PORT': '3306',
    }
}

在docker-compose中:

代码语言:javascript
复制
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

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2021-08-09 17:14:29

我已经解决了这个问题,将conector改为mysql-connector-python==8.0.26而不是mysqlclient==2.0.3

另外,连接设置

代码语言:javascript
复制
DATABASES = {
    'default': {
        #'ENGINE':   'django.db.backends.mysql',
        'ENGINE':   'mysql.connector.django',
        'NAME':     getenv('MYSQL_DATABASE'),
        'USER':     getenv('MYSQL_USER'),
        'PASSWORD': getenv('MYSQL_PASSWORD'),
        'HOST':     'db',
        'PORT':     getenv('MYSQL_PORT', 3306),
        'OPTIONS': {
            'auth_plugin': 'mysql_native_password'
        }
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68701073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档