[使用牧场主GUI,我试图在我的AKS群集上使用MySQL数据库工作负载设置Nextcloud。在环境变量中,我已经定义了管理员用户和密码,所以为什么在创建管理员页面上会收到此错误?
尝试创建管理员用户时出错:无法连接到数据库:驱动程序中发生异常:SQLSTATE [HY000] [2054]服务器请求客户端未知的身份验证方法
我多次正确输入了用户名和密码。下面是到目前为止我对数据库和nextcloud的配置。
数据库工作负载:
Name: nextdb
Docker image: mysql
port: not set
我有以下变量:
MYSQL_ROOT_PASSWORD=rootpassX
MYSQL_DATABASE=nextDB
MYSQL_USER=nextcloud
MYSQL_PASSWORD=passX
卷类型:绑定安装
卷名:nextdb
节点上的路径:/ nextdb
节点上的路径必须是:目录或创建
挂载点:/ var / lib / mysql
nextcloud工作负载:
端口映射:
端口名称:nextcloud80发布容器端口:80协议:TCP作为:第4层负载均衡器在侦听端口上:80
环境变量:
MYSQL_DATABASE = nextDB
MYSQL_USER = nextcloud
MYSQL_PASSWORD = passX
MYSQL_HOST = nextdb
NEXTCLOUD_ADMIN_USER = admin
NEXTCLOUD_ADMIN_PASSWORD = adminPass
NEXTCLOUD_DATA_DIR = / var / www / html / nextcloud
音量:
第一卷:
name: nextcloud
Volume Type: Bind-Mount
Path on the Node: /nextcloud
The Path on the Node must be: a directory or create.
Mount Point: /var/www/html
第2卷
name: nextdb
Volume Type: Bind-Mount
Path on the Node: /nextdatabase
The Path on the Node must be: a directory or create.
Mount Point: /var/lib/mysql
我的配置有什么问题?
[从版本8.02开始,MySQL更新了客户端连接的默认身份验证方法。要恢复较旧的身份验证方法,您需要明确指定默认的身份验证方法。
如果您能够在Rancher中更新数据库服务以传递容器参数--default-authentication-plugin=mysql_native_password
,该参数会将MySQL恢复为较早的auth方法。
或者,根据您使用的MySQL映像,您可以从该库创建一个新的Docker映像,该映像将替换容器内的/etc/mysql/my.cnf
。替换之前,您应该检查/etc/mysql/my.cnf
,如果配置文件中有!includedir
指令,则可以使用选择的任何文件名将补充配置放入包含的文件夹中。
补充配置应如下所示:
[mysqld]
default_authentication_plugin=mysql_native_password