`
xiaolong0211
  • 浏览: 334552 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Linux下Mysql改变字符集

阅读更多

1、中止MySQL服务(bin/mysqladmin -u root shutdown)
  2、在/etc/下找到my.cnf,如果没有就把MySQL的安装目录下的support-files目录下的my-medium.cnf复制到/etc/下并改名为my.cnf即可
  3、打开my.cnf以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭
  4、启动MySQL服务(bin/mysqld_safe &)

非常简单,这样的修改一劳永逸,今后MySQL一切相关的默认编码均为UTF-8了,创建新表格的时候无需再次设置。需要注意的是,当前数据库中已经存在的数据仍保留现有的编码方式,因此需要自行转码,方法在网上有很多,不再赘述。

以上的方法保证了数据为utf8编码,在mysql Query Browser 可视化工具中查看没有问题,但是以dos方式登陆数据库,select到的依然是乱码,这时可以通过改变命令行客户端字符集来正确显示中文。改成BGK编码即可正常查看中文,命令如下:

  mysql> charset GBK;

  这时再用“mysql> show variables like '%set%';” 查看字符集变量,部分已经变成了GBK,此时查询会在命令行正确显示中文结果。


本篇文章来源于 80后网络管理员 - 小胡 (http://www.life80.cn) 原文出处:http://www.life80.cn/HPFFiles/20100419/354D27A6-B9A9-49B0-8EF9-34B23D56336A-2010041923515.Html






MySQL的默认编码是Latin1,不支持中文,要支持中午需要把数据库的默认编码修改为gbk或者utf8。

1、需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:>mysql -u root –p,之后两次输入root用户的密码),查看数据库的编码方式命令为:
 >show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
从以上信息可知数据库的编码为latin1,需要修改为gbk或者是utf8;
其中,character_set_client为客户端编码方式;character_set_connection为建立连接使用的编码;character_set_database数据库的编码;
character_set_results结果集的编码;
character_set_server数据库服务器的编码;
只要保证以上四个采用的编码方式一样,就不会出现乱码问题。
另一个查看数据库编码的命令:
>show variables like ‘collation%’;
 
2、linux系统下,修改MySQL数据库默认编码的步骤为:
ü        停止MySQL的运行
/etc/init.d/mysql start (stop) 为启动和停止服务器
ü        MySQL主配置文件为my.cnf,一般目录为/etc/mysql
var/lib/mysql/ 放置的是数据库表文件夹,这里的mysql相当于windows下mysql的date文件夹
ü        当我们需要修改MySQL数据库的默认编码时,需要编辑my.cnf文件进行编码修改,在linux下修改mysql的配置文件my.cnf,文件位置默认/etc/my.cnf文件

找到客户端配置[client] 在下面添加
default-character-set=utf8 默认字符集为utf8
在找到[mysqld] 添加
default-character-set=utf8 默认字符集为utf8
init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)

修改好后,重新启动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/ |
+--------------------------+----------------------------+

此方法用于标准mysql版本同样有效,对于/etc/my.cnf文件,需要从mysql/support-files的文件夹cp my-large.cnf一份到/etc/my.cnf
 
3、windows系统下可以删除MySQL数据库,并重新安装,在安装过程中可以直接用Mysql Server Instance Config Wizard 进行设置
 
4、当MySQL数据库服务器已经有数据不适合删除重装时,可以个别指定数据库的编码方式。MySQL指定编码的方式是非常灵活并多样化的,可以指定表级别的编码,行级别编码,甚至可以指定字段级别的编码。
以下示例给出创建数据库时指定编码的两种方式:
1)CREATE  DATABASE  ms_db  CHARACTER SET  utf8  COLLATE utf8_general_ci;
2)create  database  if  not  exists  netctoss  default character set utf8;
5、如果你采用的是外部接入的方式,可以在连接中确定请求的编码格式如:jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=utf-8(注意:不要出现任何空格,否则出错)
6、执行脚本:指定编码格式set names gbk(注意,不是UTF-8)可以修改
执行前:
执行后:
从执行命令前后可知,set names gbk只可以修改character_set_client、character_set_connection、character_set_results的编码方式,并且这种修改是窗口级别的,只针对本窗口有效,打开另外一个窗口修改无效。也可发现数据库底层的编码方式没有改变,插入数据后还是以utf8编码方式保持。
分享到:
评论

相关推荐

    linux修改mysql字符集

    在 Linux 系统中,MySQL 的字符集默认为 latin1,然而在某些情况下,我们需要修改 MySQL 的字符集以确保某些迁移的程序可以正常显示。在本文中,我们将介绍如何在 Linux 下修改 MySQL 的字符集。 首先,我们需要...

    Linux下修改MySQL字符集

    Linux下修改MySQL字符集 1.查找MySQL的cnf文件的位置 find / -iname '*.cnf' -print /usr/share/mysql/my-innodb-heavy-4G.cnf /usr/share/mysql/my-large.cnf /usr/share/mysql/my-small.cnf /usr/share/mysql/...

    设置mysql字符集

    字符集(Character Set)定义了数据在存储和处理时所采用的编码标准,而校对集(Collation)则规定了字符集下的排序规则和比较方式。在MySQL中,主要涉及以下几个关键变量: - `character_set_system`:系统默认...

    如何修改mysql字符集

    在Linux环境下,由于MySQL的安装目录分布于多个位置,这使得字符集的修改变得稍微复杂一些。 #### MySQL在Linux下的文件分布 在Linux系统中,MySQL的各个组成部分通常被分散存储在不同的目录下: 1. **数据库文件...

    Linux下MySQL解决乱码问题

    ### Linux下MySQL解决乱码问题 #### 背景与问题描述 在使用Linux系统时,部分用户可能会遇到MySQL数据库无法正确显示或录入中文字符的问题,即所谓的“乱码”现象。这种问题不仅影响数据的准确性和完整性,还可能...

    Linux下Mysql的配置

    ### Linux下MySQL的配置详解 #### 一、安装MySQL 在Linux系统中安装MySQL可以通过RPM包进行。这里提供了一个示例命令: ```bash rpm -ivh MySQL-server-4.1.22-0.glibc23.i386.rpm --nodeps rpm -ivh MySQL-...

    Linux下MySQL 5.5/5.6的修改字符集编码为UTF8的方法

    本篇文章将详细阐述如何将Linux下的MySQL 5.5或5.6版本的字符集编码更改为UTF8,以支持更多的语言和特殊字符。 首先,我们需要了解MySQL中字符集的概念。字符集(Character Set)定义了数据存储和检索时使用的字符...

    linux下mysql安装包

    这个步骤允许你指定安装路径、服务端口、字符集等参数。一个基本的配置示例是: ```bash ./configure --prefix=/usr/local/mysql --with-extra-charsets=all --enable-thread-safe-client --with-ssl ``` 你可以...

    查看和设置MySQL数据库字符集[归纳].pdf

    **步骤3**:在`[client]`和`[mysqld]`部分添加或修改字符集设置: ```ini [client] default-character-set=utf8 [mysqld] default-character-set=utf8 ``` **步骤4**:重启MySQL服务使设置生效: ```bash ...

    MYSQL字符集与乱码问题分析

    总之,《MYSQL字符集与乱码问题分析》不仅回顾了字符集的发展历程,还详细解析了MySQL环境下字符集的配置与优化方法,对于预防和解决乱码问题具有重要的实践指导意义。通过对字符集的深入了解,开发者能够更好地应对...

    mysql的编码集修改方式

    #### 修改MySQL字符集步骤 为了确保MySQL服务器的字符集设置为UTF-8,并且在服务器重启后仍然生效,我们需要对MySQL的配置文件`my.cnf`进行编辑。以下为详细的步骤: ### 步骤1:查找并定位`my.cnf`文件 首先,需要...

    linux系统下MySQL数据库的导入导出

    ### Linux系统下MySQL数据库的导入导出 在Linux环境下管理和操作MySQL数据库是非常常见的需求,尤其在数据迁移、备份以及恢复等场景中尤为重要。本文将详细介绍如何在Linux系统中进行MySQL数据库的导入与导出,包括...

    定制MySQL的字符交响乐:字符集与排序规则配置指南

    ### 定制MySQL的字符交响乐:字符集与排序规则配置指南 #### MySQL简介及其特点 MySQL作为一款流行的开源关系型数据库管理系统(RDBMS),因其强大的功能和灵活性,在Web应用程序开发领域占据着举足轻重的地位。它...

    linux下mysql数据库乱码问题

    在 Linux 系统中使用 MySQL 数据库时,可能会遇到字符集不匹配导致的数据乱码问题。通常这种现象表现为数据库中的文本数据无法正确显示或存储,出现各种奇怪的符号或者乱码。该问题主要是由于 MySQL 的字符集设置与...

    mysql基础补充4-字符集问题

    默认情况下,mysql 的字符集是 latin1,但是一般情况下我们需要使用 utf8 字符集,以便正确地显示中文。 在系统配置中,我们可以使用 LANG 变量来设置字符集。在 Linux 系统中,我们可以使用 cat 命令来查看系统...

    mysql odbc字符集设置(中文显示乱码)

    在配置odbc源时,选上Read Options From my.cnf这一项 MySQL ODBC字符集设置 mysql数据库字符集为utf8,使用delphi7的adoquery查询出的结果显示乱码 odbc驱动版本3.51.15 处理如下: ---------------...

    linux下非root权限的mysql安装

    "Linux 下非 root 权限的 MySQL 安装" Linux 下非 root 权限的 MySQL 安装是指在 Linux 操作系统中,使用非 root 用户权限来安装和配置 MySQL 数据库服务器的过程。这种安装方式可以避免使用 root 权限,从而提高...

    mysql linux

    以上步骤详细介绍了在Linux环境下安装、配置及使用MySQL的方法,包括创建用户、配置权限、管理数据库等基础操作,以及字符集配置和转换等高级功能。这些内容涵盖了从安装到日常维护的全过程,是Linux环境下使用MySQL...

    linux下安装mysql5.5

    总结来说,Linux环境下安装MySQL 5.5涉及卸载旧版本、安装依赖、解压安装包、配置系统环境、设置权限、初始化数据库、修改配置文件、启用远程访问以及数据恢复等多个步骤。每个环节都至关重要,确保操作准确无误才能...

Global site tag (gtag.js) - Google Analytics