目录
一、连接外网数据库遇到的问题
先抛出问题,就是连接内网数据库不会报错,连接外网时和查询时就报这个错:
The given key 'utf8mb4' was not present in the dictionary.
二、解决问题的方案
1、建立连接时报以上的错,在建立连接时添加这句 charset=utf8,即可解决。
public static void OpenSql()
{
try
{
string connectionString = string.Format("Server = {0};port={1};Database = {2}; User ID = {3}; Password = {4};charset=utf8", host, "3306", database, id, pwd);
dbConnection = new MySqlConnection(connectionString);
dbConnection.Open();
}
catch (Exception e)
{
Debug.LogError("服务器连接失败! " + e.Message);
}
}
2.在内网增删改查都不会有问题,但是连外网时,查询就又报上面的错,插入数据没问题!
换了个MySql.Data.dll动态链接库就解决了!
新的MySql.Data.dll依赖了几个别的库,BouncyCastle.Crypto.dll、Google.Protobuf.dll、Renci.SshNet.dll、SshNet.Security.Cryptography.dll
新的MySql.Data.dll从VS里即可找到,用VS连接过MySql数据库的就有,需要下载一个支持文件VS才能连接Mysql。
动态链接库下载地址:
三、建表,增删改查
工具类SqlTools
/*----------------------------------------------------------------
Created by 王银
文件名: SqlTools.cs
创建时间: 2022/6/13
文件功能描述: SqlTools工具类
Copyright © 2022年 王银 All rights reserved.
----------------------------------------------------------------*/
using UnityEngine;
using System;
using System.Data;
using MySql.Data.MySqlClient;
public class SqlTools
{
public static MySqlConnection dbConnection;
static string host = "114.55.165.42";
static string id = "zhouyi";
static string pwd = "xZMGeGKwA8k43bNj";
static string database = "zhouyi";
public SqlTools()
{
OpenSql();
}
public static void OpenSql()
{
try
{
string connectionString = string.Format("Server = {0};port={1};Database = {2}; User ID = {3}; Password = {4};charset=utf8", host, "3306", database,

本文讲述了在Unity中连接外网数据库时遇到的The given key 'utf8mb4' was not present in the dictionary.问题,通过调整连接字符串并更换MySql.Data.dll动态库来修复,同时介绍了相关数据库操作工具和解决方案。
https://download.youkuaiyun.com/download/hack_yin/85635678
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



