msyql 中文读写utf8编码及连接超时设置

本文主要描述中文与超时设置。


中文:

在mysql中,中文的存储读取不可避免,不过其设置却不是非常简单。


总的来说,让一个msyql表格支持中文,需要两个步骤。

1、数据库字符集设置

2、表格创建时字符集设置


1、数据库字符集设置

对于不同的系统配置是不同的

对于ubuntu 12.04 修改文件 /etc/mysql/my.cnf

在[client] 下 添加

default-character-set = utf8

在[mysqld]下添加

character-set-server=utf8


-------------------------------------------------------------------------

在新版本的mysql中,配置文件的位置发生了改变,文件具体位置在my.cnf中包含

在[mysqld]下添加

character_set_server=utf8
collation_server=utf8_general_ci

--------------------------------------------------------------------------


重启mysql:   sudo /etc/init.d/mysql restart


mysql执行以下命令可以得到


mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+


2、表格创建时字符集设置


CREATE TABLE `area_info` (
  `i_area_id` int(11) NOT NULL AUTO_INCREMENT,
  `s_name` char(50) DEFAULT NULL,
) ENGINE=InnoDB AUTO_INCREMENT=1455 DEFAULT CHARSET=utf8;


格式为 CREATE TABLE tablename ( ... ) CHARSET=utf8; 

然后再insert tablename values (...);

可以select * from tablename; 发现已经显示中文:)


对于旧表,可以先

CREATE TABLE 新表( ... ) CHARSET=utf8;

然后

INSERT INTO 新表 SELECT * FROM 旧表; 

即可。


超时设置

需要对mysql进行超时设置,否则,如果无操作,对于mysql的连接会在28800秒(8小时)后中断。对于C++等来说,会带来小小的麻烦,一个简单的方法是增大超时,再结合一定的重连。

同样对于ubuntu 12.04 修改文件 /etc/mysql/my.cnf


在[mysqld]下添加

wait_timeout  = 2880000
interactive_timeout = 2880000

即可更改为


mysql> SHOW VARIABLES LIKE '%timeout%';
+----------------------------+----------+
| Variable_name              | Value    |
+----------------------------+----------+
| connect_timeout            | 10       |
| delayed_insert_timeout     | 300      |
| innodb_lock_wait_timeout   | 50       |
| innodb_rollback_on_timeout | OFF      |
| interactive_timeout        | 2880000  |
| lock_wait_timeout          | 31536000 |
| net_read_timeout           | 30       |
| net_write_timeout          | 60       |
| slave_net_timeout          | 3600     |
| wait_timeout               | 2880000  |
+----------------------------+----------+








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值