Delphi Deweb连接Mysql的一些小技巧

文章讲述了在Deweb中连接MySQL数据库时遇到的版本兼容性问题,特别是字符集从UTF8到UTF8MB4的变化导致的乱码问题。解决方案包括在FDConnection组件中设置字符集以及针对MySQL8.0的认证协议更新。此外,还提到了在Mysql8.0版本中更新用户认证协议的SQL命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        我们在开发网页的时候不可避免的要用到数据库,目前Mysql用的是最广泛的了,现在对自己进来用deweb连接Mysql遇到的一些问题做个总结,也算是一些小技巧吧,都是自己调试了很久,搜了很多资料才解决的问题,希望在这方面帮助其他人少走一些弯路。
        下面进入正题。
        1.在Mysql的版本选择上,比较常用的是5.0和8.0两个版本,这两个版本有一个很大的区别就是编码格式不一样了,5.0中的utf8格式在8.0中变成了utf8mb4,这在写入数据时就会导致乱码的问题。
        2.在Deweb中连接数据库有两种方式,一种是在config.json中配置连接字符串,另一种是直接在unit1中放置一个FDConnection控件,通过设置Definition中的参数进行连接。个人更推荐第二种方式,调试起来更方便。
注意:使用FDConnection控件时,必须再放置一个FDPhysMySQLDriverLink控件。

        如果你用的Mysql是5.0的版本,只需要在新建数据库、表和字段时,把字符集设置成utf8就可以了。

        如果用的Mysql是8.0的版本,除了要在新建数据库、表和字段时,把字符集设置成utf8mb4,还需要在FDConnection的Definition设置中把CharacterSet改成utf8mb4,这样在写入数据时就不会出现乱码了。

另外DeWebServer中有个DB ON的按钮,点击后弹出下边的界面

配置好自己的ip和用户名密码,点击Test有可能会提示False,然后点击Cancel会提示Client does not support authentication protocol requested by server;consider upgrading Mysql client,但是用Navicat可以连上数据库,这是因为Mysql的加密规则在8.0以后也变了,这时用navicat连接上数据库,然后新建查询,输入下列命令,然后点击运行就可以了(在Mysql的控制台里输入这个命令也可以)。两个‘root’的位置输入你自己的用户名和密码


ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES; 

输入时一定不要落下每一句后边的分号

输入时一定不要落下每一句后边的分号

输入时一定不要落下每一句后边的分号

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值