记录一些旧版本 MySQL 的问题与处理

旧版本相关资源下载:https://downloads.mysql.com/archives/

(以下版本号均为实测版本号,不代表同大版本下的其它小版本行为也会一致)

1、MySQL 5.1.46 版本

- 使用命令或服务运行数据库时,不需要也不支持通过参数初始化数据库(下载的压缩包内已有初始数据)

- 默认的 root 用户密码为空,所有需要密码的地方,不输入或留空即可(错误:Authentication to host '127.0.0.1' for user 'root' using method 'mysql_native_password' failed with message: Access denied for user 'root'@'localhost' (using password: YES))

- 在 .NET 程序中,实测最新的 MySql.Data 9.1.0 插件也是可以正常连接的

- 示例连接字符串:Server=127.0.0.1;Port=3307;Database=test;UserID=root;Password=;

2、MySQL 5.7.10 版本

- 从 5.7.X 某个版本后不再自带 my.ini 模板文件,实测 5.7.10 还有,到 5.7.22 就没有了。

- 在使用 MySql.Data 6.9.12 版本插件连接数据库时可能遇到错误,需要禁用 SSL,见下方示例(错误:System.Security.Authentication.AuthenticationException: 调用 SSPI 失败,请参见内部异常。 ---> System.ComponentModel.Win32Exception: 无法连接到本地安全机构)

- 示例连接字符串:Server=127.0.0.1;Port=3307;Database=test;UserID=root;Password=root;SslMode=none;

3、如何恢复数据表

在有完整的 *.frm、*.MYD、*.MYI 三个表文件情况下,建立新的数据库,将表文件放在新的数据库文件夹下即可。

放好后数据库会自动读取到。

查询 MySQL 版本:.\mysqld --version

如果恢复后的表,在查询时出现乱码,并且尝试了网上的各种方案后,怎样也改不回正常显示的话,可以尝试从程序中直接读取,再进行转换

比如一般表恢复后默认是 Latin1 编码,但实际内容是在 GBK/GB2312 编码下,尝试了网上各种办法,似乎没有办法能够直接通过 MySQL 进行转换处理

后来尝试发现,可以从程序中读取,并进行编码转换,可以恢复正常

在 .net 中实现:

Encoding.GetEncoding("gb2312").GetString(Encoding.GetEncoding("iso-8859-1").GetBytes(name)

需要注意,如果是在 .net 8 中,还需要引用 System.Text.Encoding.CodePages 包,否则会找不到相关的字符编码。

参考:

https://blog.csdn.net/weixin_41749529/article/details/103353671

https://www.cnblogs.com/sun8134/p/11423388.html

posted @   不是豆豆  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2016-11-18 .NET 程序在 Windows XP 下调用 SHA512CryptoServiceProvider 方法报 PlatformNotSupportedException 异常
友情链接:迷途


点击右上角即可分享
微信分享提示