MySQL字符集设置详解:如何优化中小型网站数据库性能
如何设置mysql字符集

MySQL广泛应用于互联网上的中小型网站。由于其体积小、速度快、整体
由于其成本低廉,尤其是开源,许多中小型网站选择使用它,以降低网站的总体拥有成本。
MySQL作为网站数据库。那么站长们了解MySQL字符集的设置吗?专职优化、领域
中国信息港将为您详细介绍域名注册、网站空间、虚拟主机、服务器托管、vps主机、服务器租赁等。
详细介绍!
1查看字符集支持
显示字符集;
2相坎字符集相关变量
显示变量,如“character_set%”;
3设置默认字符集
MySQL默认使用的字符集是latin1。
要解决乱码问题,最简单的办法就是修改默认字符集。
以MySQL5linux(ubuntuserver)版本为例,将默认字符集更改为utf8:
修改/etc/mysql/myf
在[mysqld]下添加:
默认字符集=utf8
在[mysql]下添加:
默认字符集=utf8
4Linux下的启动、停止和重启
/etc/init.d/mysqlstart/停止/重新启动
中文问题的关键在于全部采用UTF-8编码。 MySQL5发布版本支持UTF-8,但默认情况下
对于latin1,Java内部使用Unicode,所以需要保证JSP页面是UTF-8
编码,JDBC驱动使用官方的Connector4J5.0.4,在Resin3.1/Spring中
2.0/Hibernate3.2环境下中文测试正常。
1.下载“mysql-standard-5.0.27-linux-i686-icc-glibc23.tar.gz”,推荐ICC版本
据说与 GCC 相比,性能提高了 10-20%
2.复制到/usr/local/并解压:tarzxvfmysql-standard-5.x....tar.gz
3.添加mysql用户和组:
组添加mysql
useradd-gmysqlmysql
4.创建符号链接:/usr/local#ln-smysql-standard-5.x...mysql
5.cdmysql,当前目录改为/usr/local/mysql/
6.运行脚本初始化数据库:./scripts/mysql_install_db--user=mysql
7.设置权限:
/usr/local/mysql#chown-Rroot。
/usr/local/mysql#chown-Rmysqldata
/usr/local/mysql#chgrp-Rmysql
8、根据需要创建并修改/etc/myf,参考配置:
[mysqld]
#设置默认为INNODB表,支持事务:
默认存储引擎=INNODB
#设置默认字符集UTF-8:
字符集服务器=utf8
排序规则服务器=utf8_general_ci
默认字符集=utf8
#Disable bdb:(使用--skip-bdb关闭对Berkeley类型数据表的支持)
跳过-bdb
9.启动MySQL:
/usr/local/mysql/bin#./mysqld_safe--user=mysql&
10.初始化root密码:
/usr/local/mysql/bin#./mysqladmin-uroot-ppassword
“root密码”
输入密码:
11. 以 root 身份登录以创建数据库:
/usr/local/mysql#./mysql-uroot-p
输入密码:root密码
12.创建新用户:
mysql>createusertestidentifiedby '测试密码';
13.创建新数据库:
mysql>createddatabasetestdbdefaultcharactersetutf8defaultcollate
utf8_general_ci;
一定要指定字符集和排序方式,都是UTF-8,这样才能保证创建的表也使用
UTF-8。
14.授予测试用户从本地主机访问testdb的权限并使用密码:
mysql>grantallontestdb.*totest@localhostidentifiedby'测试密码';
注意:使用JDBC远程连接MySQL,必须正确设置测试用户权限。
MySQL访问权限由用户名、客户端机器名和密码组成。上面的例子表明只有
测试用户通过本机(localhost)上的密码连接MySQL。
15.停止MySQL服务器:
/usr/local/mysql/bin#./mysqladmin-uroot-pshutdown
输入密码:root密码
从 pidfile/usr/local/mysql/data/debian.pid 停止服务器
xxxmysqldded
中国秘密:
/etc/myf 中所有与编码相关的设置必须设置为 UTF-8,请参阅步骤 8。
请按照以下步骤进行调试:
mysql>状态;
注意字符集相关值必须保证全部为utf8,否则修改/etc/myf,
请参阅步骤 8。
mysql> 显示像“%char%”这样的变量;
除了character_set_filesystem显示为binary外,其余均应显示为utf8。
如果不是utf8,修改/etc/myf,参考步骤8。
mysql> 显示像“%collation%”这样的变量;
显示的值应该都是utf8_general_ci。否则,修改 /etc/myf 并参考步骤 8。
mysqlshow -u root -p -i 数据库名称
功能:显示数据库详细信息,如果没有看到utf8_general_ci,但是
latin_swedish_ci,说明数据库编码不是UTF-8,而且中文肯定不正常,删除掉,再参考
测试步骤 13 以 UTF-8 重新创建数据库。
视窗
修改默认字符集
(1)最简单的修改方法是修改mysql的my.ini文件中的字符集键值。
如default-character-set = utf8
字符集服务器 = utf8
修改完后,重启mysql服务,service mysql restart
使用 mysql> SHOW VARIABLES LIKE 'character%';查看并查找数据库编码
全部改为utf8
+--------------------------------------+---------------------- ---- ----------+
|变量名|价值|
+--------------------------------------+---------------------- ---- ----------+
|字符集客户端| utf8|
|字符集连接 | utf8|
|字符集数据库 | utf8|
|字符集文件系统 |二进制|
|字符集结果| utf8|
|字符集服务器| utf8|
|字符集系统| utf8|
|字符集目录| D:"mysql-5.0.37"共享"字符集" |
+--------------------------------------+---------------------- ---- ----------+
(2)还有一种修改字符集的方法,就是使用mysql命令
mysql> 设置字符集客户端 = utf8;
mysql> 设置字符集连接= utf8;
mysql> 设置字符集数据库 = utf8;
mysql> 设置字符集结果 = utf8;
mysql> 设置字符集服务器 = utf8;
mysql> 设置 collation_connection = utf8;
mysql> SET collation_database = utf8;
mysql> 设置 collation_server = utf8;
一般来说,即使你将表的默认字符集设置为utf8,并通过UTF-8编码发送查询,你也会发送
目前输入数据库的内容仍然是乱码。问题就出在这个连接层。解决方案
只需在发送查询之前执行以下语句:
设置名称'utf8';
相当于下面三个指令:
设置字符集客户端=utf8;
设置字符集结果=utf8;
设置字符集连接= utf8;
中国信息港提供:虚拟主机、vps主机、网站空间、服务器托管、服务器租用、
主机空间、网络虚拟主机、全能虚拟主机、国内虚拟主机、香港虚拟主机、linux虚拟主机
机、windows虚拟主机、php虚拟主机空间、asp虚拟主机空间、jsp虚拟主机、.net虚拟
主机、java虚拟主机、云虚拟主机、云技术架构、多线虚拟主机、最快虚拟主机、论坛虚拟主机
虚拟主机、动态虚拟主机、静态虚拟主机,中国信息港服务于企业、政府、团体等机构或
作者亲自提供最新最全的虚拟主机信息。虚拟主机技术是互联网服务器使用的一种节省
服务器硬件成本技术,中国信息港是中国顶级虚拟主机服务商,行业10余年
服务体验,7×24小时专业技术支持,云技术架构,全新硬件,强大的控制面板,
灵活的资源划分,完美满足各种应用需求!