连接mysql8.0时报:KeyNotFoundException: 给定关键字不在字典中

第一步:先检查连接字符串是否正确,标准写法一般如下:

// 标准格式1
"Server=localhost;Port=3306;Database=missjia;Uid=missjia;Pwd=Ymworkrm2;Charset=utf8;"

// 标准格式2
"Data Source=localhost;Port=3306;Initial Catalog=missjia;User ID=missjia;Password=Ymworkrm2;Charset=utf8;"

如果改成标准形式还不行,接着往下。

第二步:检查用户权限,确认账号有从所在客户端的ip登录权限,可用以下语句检查:

SELECT host, user FROM mysql.user WHERE user = 'missjia';

 没有记录则说明没有权限或账号没有生效,mysql8.0与以前5.7版本不同,8.0在创建用户和授权是分开的。

-- 1. 创建用户,并允许从任何主机连接(%代表任何IP)
-- 如果你只需要从本地连接,可以把 '%' 换成 'localhost'
CREATE USER 'missjia'@'%' IDENTIFIED BY 'Ymworkrm2';

-- 小提示:如果想让用户只能从特定的IP(比如你的电脑IP)连接,可以把 '%' 换成具体的IP地址,如 '192.168.1.100',这样更安全[citation:4]。
-- 2. 授予用户对 missjia 数据库的所有权限
GRANT ALL PRIVILEGES ON missjia.* TO 'missjia'@'%';

-- 3. 刷新权限,让设置立即生效
FLUSH PRIVILEGES;


接着再用sql来验证用户权限:

-- 再次查询,确认用户已存在
SELECT host, user, plugin FROM mysql.user WHERE user = 'missjia';

  

posted on 2026-03-14 17:29  ymworkroom  阅读(1)  评论(0)    收藏  举报