连接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';
浙公网安备 33010602011771号