mysql 汉字的大小_一个汉字在数据库占几个字节

项目中oracle10g数据库表字段为varchar(n)类型,存英文很简单,只要字母个数不大于n即可。但是对于汉字,按照同样的方法就不行了。因为对于汉字不同的字符集,在数据库占用的字节是不一样的。UTF-8字符集,一个汉字占三个字节,gbk字符集,一个汉字占两个字节,比如varchar(10)类型的字段,UTF-8的汉字,只能存3个,gbk字符集的汉字却能存5个。

所以在程序中根据表字段varchar的大小,保存或更新时作出必要的校验否则后台会报错。

办法:1、用表格 maxlength属性,比如maxlength="5",即只能存5个汉字。

MySQL 5.0以上的版本:

1.一个汉字占多少长度与编码有关:

UTF-8:一个汉字=3个字节

GBK:一个汉字=2个字节

2.varchar(n)表示n个字符,无论汉字和英文,Mysql都能存入n个字符,仅是实际字节长度有所区别

3.MySQL检查长度,可用SQL语言:

select LENGTH(fieldname) from tablename 来查看

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现两个 MySQL 数据库之间的主从同步,需要进行以下步骤: 1. 在主数据库上开启二进制日志功能,即在主数据库配置文件 my.cnf 中添加以下配置: ``` log-bin=mysql-bin server-id=1 ``` 其中,log-bin 表示启用二进制日志,mysql-bin 是二进制日志文件的前缀,可以自定义。server-id 表示主数据库的唯一标识,可以设置为任意整数。 2. 在从数据库上配置主从复制,即在从数据库配置文件 my.cnf 中添加以下配置: ``` server-id=2 relay-log=mysql-relay-bin relay-log-index=mysql-relay-bin.index ``` 其中,server-id 表示从数据库的唯一标识,与主数据库不同即可。relay-log 和 relay-log-index 表示从数据库中继日志文件的前缀和索引文件名,可以自定义。 3. 在主数据库上创建用于复制的账号,并授权给从数据库,如下所示: ``` CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; ``` 其中,repl 是用于复制的账号,% 表示允许任意 IP 地址连接,password 是该账号的密码。GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' 表示授予该账号复制权限。 4. 在从数据库上启动主从复制,执行以下命令: ``` CHANGE MASTER TO MASTER_HOST='master_host', MASTER_PORT=3306, MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=4; START SLAVE; ``` 其中,MASTER_HOST 表示主数据库的 IP 地址,MASTER_PORT 表示主数据库的端口号,MASTER_USER 和 MASTER_PASSWORD 分别表示用于复制的账号和密码。MASTER_LOG_FILE 和 MASTER_LOG_POS 分别表示主数据库当前二进制日志文件名和位置,可以通过 SHOW MASTER STATUS 命令查看。 执行完以上步骤后,从数据库就可以实现主从同步了。需要注意的是,如果主数据库的数据发生了变化,需要在从数据库上重新执行 CHANGE MASTER TO 和 START SLAVE 命令,以更新复制信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值