`
xiaolong0211
  • 浏览: 329739 次
  • 性别: 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字符集

    安装完的MySQL的默认字符集为 latin1 ,为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件;由于linux下MySQL的默认安装目录分布在不同的文件下;不像windows一样放在同一目录下,只需修改其中...

    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基础补充4-字符集问题

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

    linux下非root权限的mysql安装

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

    一次Linux修改MySQL配置不生效的问题解决

    在Linux环境下,遇到MySQL配置修改后不生效的问题,通常是由于多方面的原因造成的。本文将以一个实际案例,详细解析这个问题的解决过程。 首先,问题源于在AWS EC2服务器上,为提高安全性和性能,将MySQL数据库迁移...

    linux下安装mysql5.5

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

    Linux mysql utf8

    在这个文件中,我们可以设置 MySQL 的字符集、连接 timeout、缓存大小等参数。 数据库表文件夹 MySQL 的数据库表文件夹位于 `/var/lib/mysql/`。这个文件夹相当于 Windows 下 MySQL 的 data 文件夹。 查看 MySQL ...

    mysql乱码问题解决办法

    打开mysql改变字符集 然后在获取连接时候改变字符集 最后在查询之前改变字符集 我用过的可以解决

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

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

    mysql修改数据库编码(数据库字符集)和表的字符编码的方法

    MySQL数据库是全球最受欢迎的开源关系型数据库管理系统之一,它支持多种字符集以适应不同语言和地区的文本处理需求。字符集,或称字符编码,决定了数据库和表如何存储和展示字符数据。本文将详细介绍如何修改MySQL...

    Linux下Mysql的配置

    同时,设置字符集支持中文,可在`[client]`和`[mysqld]`下添加`default-character-set=utf8`。 MySQL用户管理可通过`grant`命令进行权限分配,例如: - 创建用户并授权:`grant SELECT ON 数据库.* TO 用户名@登录...

    linux下mysql 操作命令.docx

    本文总结了 Linux 下 MySQL 操作命令的基本知识点,包括启动、重启、关闭 MySQL 服务器,连接 MySQL 服务器,修改 MySQL 密码,增加新用户,显示数据库列表,显示库中的数据表,显示数据表的结构,建库、建表、删库...

    linux上安装mysql5.7.docx

    配置MySQL的主配置文件`my.cnf`,通常位于`/etc/my.cnf`,以设置数据目录、端口、字符集等参数: ``` [mysqld] datadir=/usr/local/mysql/data basedir=/usr/local/mysql socket=/tmp/mysql.sock user=mysql ...

    linux下使用yum安装mysql

    在这篇文章中,我们将介绍如何使用 yum 命令安装 MySQL 服务器端,并配置默认字符集、设置用户和密码、创建数据库和表等。 一、安装 MySQL 服务器端 使用 yum 命令安装 MySQL 服务器端非常简单,首先,需要检查...

    mysql linux简单教程

    你可以根据实际需求调整参数,如修改默认字符集、优化内存使用等。 四、连接与管理MySQL 使用`mysql`命令行客户端连接到MySQL服务器: ```bash mysql -u root -p ``` 输入之前设置的root密码后,你将进入MySQL...

    Mysql5 字符集编码问题解决

    MySQL5中的字符集编码问题是一个常见的困扰开发者的难题,尤其在数据导入导出、多语言环境或者跨系统交互时。字符集的选择和配置对于保证数据的一致性和正确性至关重要。以下将详细介绍字符集编码的基本概念、重要性...

    linux下jsp连接mysql5.1中文乱码解决方法.doc

    在默认情况下,MySQL 5.1的字符集是`latin1`(ISO_8859_1),这个字符集不支持中文字符。要检查当前的字符集设置,可以使用以下MySQL命令: ```sql mysql> SHOW VARIABLES LIKE 'character%'; ``` 这将显示所有与...

Global site tag (gtag.js) - Google Analytics