首页
友情链接
精美壁纸
给我留言
更多
关于我
Search
1
uniapp Click点击事件冲突解决
4,558 阅读
2
【插件】UNI APP 实现商米打印机功能支持T1,T2,V2机型
3,871 阅读
3
【测试可用】个人码免签支付系统源码/免签支付系统/微信支付平台
1,974 阅读
4
Java Validation参数校验注解使用
1,230 阅读
5
windows10下docker:给已存在的容器添加端口映射的方法
1,219 阅读
Java
Spring Boot
Spring Mvc
Java基础
进阶知识
前端
uniapp
小程序/公众号
JavaScript
HTML/CSS
Vue
PHP
开源软件
商城
营销工具
开发工具
视频/教程
Discuz主题/插件
typecho主题/插件
SEO杂谈
数据库
MongoDB
MySQL
Redis
单片机
概念说明
电路相关
Python
devops
docker
k8s
linux
职场杂谈
登录
/
注册
Search
标签搜索
python
mysql
人人商城
php
java
docker
typecho
插件
微擎
seo
spring boot
discuz
队列
uni-app
phpcms
教程视频
开源系统
源码
工具
css
哈根达斯
累计撰写
100
篇文章
累计收到
154
条评论
首页
栏目
Java
Spring Boot
Spring Mvc
Java基础
进阶知识
前端
uniapp
小程序/公众号
JavaScript
HTML/CSS
Vue
PHP
开源软件
商城
营销工具
开发工具
视频/教程
Discuz主题/插件
typecho主题/插件
SEO杂谈
数据库
MongoDB
MySQL
Redis
单片机
概念说明
电路相关
Python
devops
docker
k8s
linux
职场杂谈
页面
友情链接
精美壁纸
给我留言
关于我
搜索到
8
篇与
mysql
的结果
2021-07-19
MySQL中字符串类型 char、varchar、text类型的区别
1、 char长度固定, 即每条数据占用等长字节空间;适合用在身份证号码、手机号码等定。2、 varchar可变长度,可以设置最大长度;适合用在长度可变的属性。3、 text不设置长度, 当不知道属性的最大长度时,适合用text。按照查询速度: char最快, varchar次之,text最慢。1. char类型char(n)中的n表示字符数,最大长度是255个字符; 如果是utf8编码方式, 那么char类型占255 * 3个字节。(utf8下一个字符占用1至3个字节)2.varchar类型varchar(n)中的n表示字符数,最大空间是65535个字节, 存放字符数量跟字符集有关系;MySQL5.0.3以前版本varchar(n)中的n表示字节数;MySQL5.0.3以后版本varchar(n)中的n表示字符数;varchar实际范围是65532或65533, 因为内容头部会占用1或2个字节保存该字符串的长度;如果字段default null(即默认值为空),整条记录还需要1个字节保存默认值null。如果是utf8编码, 那么varchar最多存65532/3 = 21844个字符。3.text类型跟varchar基本相同, 理论上最多保存65535个字符, 实际上text占用内存空间最大也是65535个字节; 考虑到字符编码方式, 一个字符占用多个字节, text并不能存放那么多字符; 跟varchar的区别是text需要2个字节空间记录字段的总字节数。PS: 由于varchar查询速度更快, 能用varchar的时候就不用text。
2021年07月19日
400 阅读
0 评论
0 点赞
2021-07-18
Java开发中 MySQL存储emoji表情报错的处理方法 MySQL中utf8mb4编码使用
在平时的网络平台应用开发中,需要需微信公众号的平台进行对接,在使用mysql存储微信昵称时常用用户使用emoji表情,常见的处理方式有如下:mysql使用utf8mb4编码程序中替换emoji为其它字符串今天我们主要来介绍mysql使用utf8mb4编码方法解决问题文章目录索引utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而emoji表情数据是4个字节的字符。如果直接往采用utf-8编码的数据库中插入表情数据,Java程序中将报SQL异常:ava.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'nickname' at row 1 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620) at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1662) at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1581) utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符。采用utf8mb4编码的好处是:存储与获取数据的时候,不用再考虑表情字符的编码与解码问题。一、要求1. MySQL的版本utf8mb4的最低mysql版本支持版本为5.5.3+,若不是,请升级到较新版本。2. MySQL驱动5.1.34可用,最低不能低于5.1.13一、配置修改1 .修改MySQL配置文件修改mysql配置文件my.cnf 修改如下配置项[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4'修改完成后重启mysql服务,并检查编码结果SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';显示如下:Variable_nameValuecharacter_set_clientutf8mb4character_set_connectionutf8mb4character_set_databaseutf8mb4character_set_filesystembinarycharacter_set_resultsutf8mb4character_set_serverutf8mb4character_set_systemutf8character_sets_dirC:datacollation_connectionutf8mb4_general_cicollation_databaseutf8mb4_unicode_cicollation_serverutf8mb4_unicode_ci其中参数变量 collation_connection 、collation_database 、collation_server是什么没关系,但必须保证以下参数变量必须是utf8mb4character_set_client:客户端来源数据使用的字符集character_set_connection:连接层字符集character_set_database:当前选中数据库的默认字符集character_set_results:查询结果字符集character_set_server:默认的内部操作字符集1 .数据库连接的配置数据库连接参数中:characterEncoding=utf8会被自动识别为utf8mb4,也可以不加这个参数,会自动检测。而autoReconnect=true是必须加上的。jdbc:mysql://127.0.0.1:3306/dbname?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimeZone=GMT+82 .修改字段名字符集修改nickname字符集编码为utf8mb4_unicode_ciALTER TABLE `tb_user` MODIFY COLUMN `nickname` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL;然后就可以保存emoji到数据库中,如下图可以在Navicat Premium中查看已保存的emoji表情
2021年07月18日
275 阅读
0 评论
0 点赞
2021-07-12
Linux下实现Mysql数据库定时备份
数据库数据作为生产环境的重要资产需要做定时的备份,建议每天凌晨进行整库备份文章目录索引开发中常见的备份方式:整库数据备份,使用mysqldump 进行数据备份mysql数据库主从配置实现备份本文中介绍常用的脚步备份,当前脚步备份仅备份到数据库,后续将脚本实现备份后上传至七牛云或邮件发送步骤一:编写备份脚本#!/bin/bash # 备份放置的目录文件需要提前创建文件夹 backupdir=/home/back/db time=` date +%Y%m%d%H ` # dbname:换成你要备份的数据库名。root账号和密码换成对应的数据库名与密码 mysqldump dbname -uroot -p123456 | gzip > $backupdir/db_$time.sql.gz # 保留最近5天的文件 +5,根据实际情况调整,+30为最近30天 find $backupdir -name "db_*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1 echo "备份成功"保存文件/home/back/backup.sh,并给backup.sh脚本文件设置可执行权限chomd +x backup.sh.步骤二:linux定时任务执行定时任务使用linux自带Crontab 任务管理器,具体使用可 查看crontab教程 。本定时任务举例:每天凌晨3点执行备份编辑/etc/crontab文件。0 3 * * * /home/back/backup.sh保存后重启 crond 执行service crond restart教程到此结束,本教程在centos系统中使用有效
2021年07月12日
115 阅读
0 评论
0 点赞
1
2