本文主要是介绍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 |
+----------------------------+----------+
这篇关于msyql 中文读写utf8编码及连接超时设置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!