我们在开发网页的时候不可避免的要用到数据库,目前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;
输入时一定不要落下每一句后边的分号
输入时一定不要落下每一句后边的分号
输入时一定不要落下每一句后边的分号