mysql服务器字符集查询和设置方法

   1、查看 MySQL 数据库服务器和数据库字符集

  show variables like '%char%';

  2、查看当前安装的 MySQL 所支持的字符集。

  show charset;

  3、设置编码:

  修改my.cnf

  vi /etc/my.cnf

  在[client]下添加

  default-character-set=utf8

  在[mysqld]下添加

  default-character-set=utf8

  保存,重启mysql即可;

  修改数据库的字符集

  mysql>use mydb

  mysql>alter database mydb character set utf-8(utf8);

  创建数据库指定数据库的字符集

  mysql>create database mydb character set utf-8(utf8);

  或者用mysql命令修改编码

  通过MySQL命令行修改:

  set character_set_client=utf8;

  set character_set_connection=utf8;

  set character_set_database=utf8;

  set character_set_results=utf8;

  set character_set_server=utf8;

  set character_set_system=utf8;

  set collation_connection=utf8;

  set collation_database=utf8;

  set collation_server=utf8;

  mysql修改表、字段字符集

  把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:

  ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]

  如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

  只是修改表的默认字符集:

  ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];

  如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

  修改字段的字符集:

  ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];

  如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

  查看数据库编码:

  SHOW CREATE DATABASE db_name;

  查看表编码:

  SHOW CREATE TABLE tbl_name;

  查看字段编码:

  SHOW FULL COLUMNS FROM tbl_name;

  MySQL中的字符集转换过程

  1. MySQL Server收到请求时将请求数据从character_set_client转换为character_set_connection;

  2. 进行内部操作前将请求数据从character_set_connection转换为内部操作字符集,其确定方法如下:

  • 使用每个数据字段的CHARACTER SET设定值;

  • 若上述值不存在,则使用对应数据表的DEFAULT CHARACTER SET设定值(MySQL扩展,非SQL标准);

  • 若上述值不存在,则使用对应数据库的DEFAULT CHARACTER SET设定值;

  • 若上述值不存在,则使用character_set_server设定值。

  3. 将操作结果从内部操作字符集转换为character_set_results。

  其他注意事项

  • my.cnf中的default_character_set设置只影响mysql命令连接服务器时的连接字符集,不会对使用libmysqlclient库的应用程序产生任何作用!

  • 对字段进行的SQL函数操作通常都是以内部操作字符集进行的,不受连接字符集设置的影响。

时间: 2024-09-19 14:25:25

mysql服务器字符集查询和设置方法的相关文章

mysql字符集查询与设置方法

说到底mysql 乱码的根源是的 mysql 字符集设置不当的问题. 有关查看 mysql 字符集的命令. 包括查看 mysql 数据库服务器字符集.查看 mysql 数据库字符集,以及数据表和字段的字符集.当前安装的 mysql 所支持的字符集等. 一.查看 mysql 数据库服务器和数据库字符集. mysql> show variables like '%char%';  +--------------------------+--------------------------------

MySQL 服务器参数说明及查看 设置方法_Mysql

查看参数:SHOW VARIABLES: 设置参数:SET GLOBAL 参数名称=value:如设置数据库最大连接数为:SET GLOBAL max_connections=1000. 用shell>mysqld-help这个命令可以得到一张所有mysql选项和可配置变量的表.输出以下信息: possible variables for option--set-variable(-o) are: back_log current value:5 //要求mysql能有的连接数量.back_lo

MySQL服务器最大连接数怎么设置才合理

MySQL服务器的连接数并不是要达到最大的100%为好,还是要具体问题具体分析,下面就对MySQL服务器最大连接数的合理设置进行了详尽的分析,供您参考. 我们经常会遇见"MySQL: ERROR 1040: Too many connections"的情况,通常,mysql的最大连接数默认是100, 最大可以达到16384. 一种是访问量确实很高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力,另外一种情况是MySQL配置文件中max_connections值过小: m

修改mysql默认字符集的两种方法详细解析_Mysql

(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,如 default-character-set = utf8    character_set_server = utf8 修改完后,重启mysql的服务,service mysql restart使用 mysql> SHOW VARIABLES LIKE 'character%';查看,发现数据库编码均已改成utf8 复制代码 代码如下: +--------------------------+-----------

对MySQL中字符集的相关设置操作的基本教程_Mysql

1.查看字符集相关变量 mysql> show variables like 'character%'; +--------–+-----------+ | Variable_name | Value | +--------–+-----------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set

Mysql中分页查询两个方法比较

mysql中分页查询有两种方式, 一种是使用COUNT(*)的方式,具体代码如下 1 2 3 SELECT COUNT(*) FROM foo WHERE b = 1;   SELECT a FROM foo WHERE b = 1 LIMIT 100,10; 1    另外一种是使用SQL_CALC_FOUND_ROWS 1 2 SELECT SQL_CALC_FOUND_ROWS a FROM foo WHERE b = 1 LIMIT 100, 10; SELECT FOUND_ROWS(

Apache下服务器虚拟主机的设置方法介绍

一.WWW服务器虚拟主机原理 WWW服务器虚拟主机是指使用一台物理机器,充当多个主机名的WWW服务器.比如由一台机器同时提供http://www.company1.com, http://www.company2.com 等的WWW服务,而浏览这些WWW站点的用户感觉不到这种方式下跟由不同的机器提供不同的服务有什么差别. 使用WWW虚拟主机的好处在于,一些小规模的网站,通过跟其他网站共享同一台物理机器,可以减少系统的运行成本,并且可以减少管理的难度.另外,对于个人用户,也可以使用这种虚拟主机方式

MySQL常用的查询随机数据方法对比

方案一: 代码如下:  代码如下 复制代码 SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1; 这种方法的问题就是非常慢.原因是因为MySQL会创建一张零时表来保存所有的结果集,然后给每个结果一个随机索引,然后再排序并返回. 有几个方法可以让它快起来. 基本思想就是先获取一个随机数,然后使用这个随机数来获取指定的行. 由于所有的行都有一个唯一的id,我们将只取最小和最大id之间的随机数,然后获取id为这个数行.为了让这个方法当id不连续时也能有效,我

MySQL启用慢查询日志记录方法

在MySQL中,慢查询的界定时间是由MySQL内置参数变量long_query_time来指定的,其默认值为10(单位:秒),我们可以通过show variables like 'long_query_time';指令来查看该参数变量的信息: long_query_time的默认值为10秒 不过,在程序开发过程中,我们认为慢速查询的界定时间并没有10秒这么长,依据不同项目的不同需求,我们一般将慢查询的界定时间设定为1~5秒之间.我们可以使用指令set long_query_time = 秒数来设