You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF连接DigitalOcean Ubuntu MySQL数据库提示未知数据库错误求助

解决方案:连接自定义MySQL数据库时出现Unknown Database错误

首先咱们拆解下这个错误:Unknown database 'firefly'才是核心问题,身份验证失败其实是找不到数据库引发的连锁反应(MySQL会先验证数据库存在性,再处理身份验证细节)。既然你能正常连接默认库(mysql、performance_schema),说明远程连接的基础配置是通的,问题大概率出在数据库存在性/权限/连接字符串匹配上,下面是一步步排查和解决的方法:

1. 先确认目标数据库是否真的存在于服务器上

登录你的Ubuntu服务器,打开MySQL命令行(用root或有权限的用户):

mysql -u root -p

执行命令查看所有数据库:

SHOW DATABASES;

仔细检查输出列表里有没有firefly——注意:Ubuntu上的MySQL默认是大小写敏感的(lower_case_table_names=0),如果创建数据库时用了FireFly或FIREFLY,但连接字符串里写的是小写firefly,就会找不到。如果确实不存在,先创建数据库:

CREATE DATABASE firefly;
-- 若需要指定UTF-8字符集,可使用:
CREATE DATABASE firefly CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

2. 检查MySQL用户对目标数据库的访问权限

即使数据库存在,你的root用户可能没被授予访问firefly的远程权限(DigitalOcean默认MySQL配置里,root可能只拥有默认库的权限,或限制了访问来源)。执行以下命令给root用户授权(替换your_root_password为你的实际密码):

GRANT ALL PRIVILEGES ON firefly.* TO 'root'@'%' IDENTIFIED BY 'your_root_password';
FLUSH PRIVILEGES;

这里的'%'表示允许从任何远程IP访问,若想限制特定IP,把%换成你的本地IP即可。

3. 修正C#连接字符串的关键错误

你错误里显示主机是127.0.0.1,这是致命问题!你要连接的是DigitalOcean远程服务器,不能用本地回环地址。正确的连接字符串示例如下:

string connectionString = "server=你的DigitalOcean公网IP;database=firefly;uid=root;pwd=你的密码;port=3306;SslMode=Required;";

还要注意这几个细节:

  • SslMode=Required:DigitalOcean的MySQL默认要求SSL连接,没加这个参数可能导致连接失败或权限验证异常
  • database参数的大小写要和服务器上的数据库名完全一致

4. 额外排查:MySQL大小写敏感性配置

如果数据库名和连接字符串大小写一致但仍找不到,可以检查MySQL的大小写配置:
在Ubuntu服务器上打开MySQL配置文件(通常是/etc/mysql/mysql.conf.d/mysqld.cnf),查找lower_case_table_names参数:

  • 值为0:大小写敏感,数据库名必须完全匹配
  • 值为1:不区分大小写(Windows系统默认)
    若需修改,改完后重启MySQL服务:
sudo systemctl restart mysql

⚠️ 注意:修改这个参数建议先备份数据库,且重启后对已存在的数据库名生效逻辑不同,尽量在创建数据库前就确认好大小写规则。

最后测试

修改完上述配置后,重新运行WPF程序即可。如果还是有问题,先在本地终端用远程连接测试服务器端配置:

mysql -h 你的服务器IP -u root -p firefly

如果这个命令能成功登录,说明服务器端没问题,问题肯定出在C#代码的连接字符串上。

内容的提问来源于stack exchange,提问作者ChakirBelhaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:24:54