linux下mysql中文乱码解决方法
Linux平台下修正MySQL中文乱码问题
Linux平台下修正MySQL中文乱码问题操作系统环境:
RHEL4.6、MySQL 4.1.22
现象:
在此电脑上安装了Tomcat作为web服务器,部署了一个项目,通过jdbc连接到mysql数据库。
但是发现中文输入输出乱码现象。
解决步骤:
1. 找到mysql的配置文件
网上说,mysql的配置文件就是/etc/f。
但是这个文件并不一定存在,由于你可能采取的MySQL安装方式跟网上所说的不一样,就不一定能够找得到/etc/f。
因此,你需要使用find命令查找cnf文件。
记得不要去找f因
2. 打开f修改编码
vi /etc/f --打开f文件
显示结果如下:
在[mysqld]下添加
default-character-set=GBK
在[client]下添加
default-character-set= GBK
3. 重启mysql
根据你安装mysql的方式的不同,采用不用的命令来重启你的mysql。
如果你配置过使用mysqld自启动方式,可以执行“/etc/rc.d/init.d/mysql restart”来重启。
或者你把mysql配置成系统服务的方式,你可以执行“service mysql restart”。
Mysql中文乱码的解决方法(3)
Mysql中文乱码的解决方法(3)只有在mysql3.23的时候,phpmyadmin才会多一个gb2312的页面charset,这时候是正常的。
3.将以前的mysql3的库文件导入mysql4.1的库有两种情况:一是从phpmyadmin上导入,这时候你要注意的是在选择库文件的页面左下脚有个“文件的字符集:”,默认是utf8,要改成gb2312,否则导进去乱码;二是在linux下导入,这时候你需要先在库文件的头部加一行:set names 'gb2312'; 注意最后也是;号,别漏了。
然后执行mysql -u用户名 -p密码 xx-x.sql > 库名导入完成以后再用phpmyadmin打开看,里面的中文字就是正确的。
4.从mysql4.1里导出库文件一.用phpmyadmin导出导出倒是问题不大,如果phpmyadmin的浏览页面里显示的中文是正常的,那么导出肯定也是正常的二.在linux上导出如果用mysqldump导出出现了乱码也没有关系,可以运行iconv 来转换一下iconv -c -f utf-8 -t gb2312 库文件名 >新的gb2312的库文件名综上所述,你要注意:1。
尽量在需要导入的库文件的开头加入set names'gb2312';告诉mysql你要导入的是一个gb2312的文件;2。
可能你需要这个:set names 'utf8';在登陆到mysql后用,把character的一些默认参数改到utf8上,有时可以减少一些困扰,不过也不是必须的。
在mysql上使用:show variables like 'character_set_%';用来查看当前的状态。
3.如果出现乱码也不要怕,一是你要注意留存原有的备份,二是用iconv来进行转化。
在正常使用之前注意做导入导出的测试,确保万无一失。
最后加一句:#url#原创文章,转载请注明出处。
2021年linux下mysql中文乱码解决方法
Save every penny for customers.通用参考模板(WORD文档/A4打印/可编辑/页眉可删)linux下mysql中文乱码解决方法上次在碰到这问题,在网上找了解决方法,可是没记下来。
这星期要换机器,要把原来linux下的mysql数据库移到另一台服务器上。
安装suse系统、再配置telnet、ftp服务、安装java jdk并配置、再安装eclipse和mysql,又花了一天的时间。
感觉还是不熟练,配置防火墙老是不能将telnet和ftp服务排外。
mysql又碰到了中文乱码问题,又在网上找一找,现在把解决方法先记下来吧。
系统环境:suse linux server 10,mysql 5.0安装mysql后,默认的字符集是latin1。
在linux下安装mysql不像在windows上安装那像,可以选择字符集(即使当时使用了默认的字符集,安装后也可以在安装目录下修改my.ini 文件),但是在linux就不太一样了。
在shell输入mysql登陆后:mysqlshow variables like '%char%';回车后显示:+----------------------+---------------------| 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/ +---------------------+---------------------- 这就是它默认的`设置。
mysql数据库乱码
彻底解决mysql中文乱码的办法MySQL会出现中文乱码的原因不外乎下列几点: 1.server本身设定问题,例如还停留在latin1 2.table的语系设定问题(包含character与collation) 3.客户端程式(例如php)的连线语系设定问题强烈建议使用utf8!!!! utf8可以兼容世界上所有字符!!!!Linux下Mysql插入中文显示乱码解决方案mysql -uroot -p 回车输入密码进入mysql查看状态如下:mysql不能插入中文默认的是客户端和服务器都用了latin1,所以会乱码。
解决方案:mysql>user mydb;mysql>alter database mydb character set utf8;!另一种方法是直接修改默认的Mysql配置文件在debian环境下,彻底解决mysql无法插入中文和中文乱码的办法上面提到了用临时方法更改数据库的字符集设置,显示中文,但是后来发现在有的系统下并不能成功,比如我用的debian 7.0,找了好久终于找到一个适合debian系统的解决方案,debian 7.0下测试成功,其他诸如修改client和mysql加入default-character-set=utf8的方法之类的,只适用与5.5以前的系统!终极决绝方案,一劳永逸:debian下mysql的字符串修改为utf8(参考:rainysia的专栏)一、进入mysql(mysql -uroot -p),查看当前数据库字符集(status;)二、查看当前系统版本(lsb_release -a)Mysql不能插入中文三、#vim /etc/mysql/f 。
(5.5以前系统)在【client】下面加入default-character-set=utf8在【mysqld】下面加入default-character-set=utf8Notice:注意如果修改后不能启动报错试试把default-character-set=utf8改为character_set_server=utf8,仅仅加入到mysqld下面的.client就不需要加了四、#vim /etc/mysql/f 。
mysql中文乱码
describe 表名;
新建或删除一个数据库
create database mydb;
drop database mydb;
删除表
drop table temp;
创建主键是自动增长的表name列为m
create table t(id int auto_increment primary key,name char(20) default'm');
分类: mysql 2009-05-03 14:33 27人阅读 评论(0) 收藏 举报
查看mysql中的所有库
show databases;
使用库
use 库名;
显示库中的所有表
show tables;
查看表结构
show columns from 表名;
set names utf8;
3.页面设置编码utf8
4.在后台
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
5.在数据库连接的时候
jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8
mysql 中文乱码处理
01==》my.ini中将default-character-set设置为utf8;[client]后面加default-character-set=utf8;
用show variables like '%char%' 查看字符编码
Linux下ODBC中文乱码解决方法-mysql
Linux下ODBC中文乱码解决方法-mysql
最近在测试Linux下的ODBC方式访问Mysql数据库的过程中,在使用测试程序读取Mysql数据库中的中文字符总是乱码,在网上搜索了很多的关于Mysql数据库的乱码问题的文章,都是要解决Mysql 数据库本身的编码一致的问题,我采用Mysql命令行的方式访问即:mysql -h sourceIP -u usrid -p pwd database,读取表中的数据能够正确显示,但是通过ODBC方式的测试程序则显示乱码,经过思考,发现问题可能是ODBC数据源采用的字符集和数据库的字符集不同引起的,故在odbc的数据源即/etc/odbc.ini(文件保存位置可能不同)中的Mysql数据源中增加了一条语句:
CHARSET = UTF8,则测试程序测试成功。
个人感想:Mysql数据库中文乱码问题查找步骤:
1. 保证数据库中中文数据插入或者通过文件导入时的字符集格式与Mysql数据库的character_set_results的字符集设置一致,当然这种字符集一定要支持中文格式
2. 上述格式保证以后如果读取后还是乱码,则查看你采用的访问数据库的方式(如本例的ODBC)的字符集是否能够设置,保证访问方式的字符集与数据库字符集保持一致。
Mysql中文乱码解决方案
问题详细描述
用ODI从ORACLE数据库向MYSQL数据库进行数据集成时,只要字段内容为中文均无法正确集成,显示为乱码;英文和数字可以正确集成。
解决方法:
1.检查服务器上Oracle数据库的字符集,SQL语句为select * from nls_database_parameters,
其来源于props$,是表示数据库的字符集,
NLS_CHARACTERSET 这个参数的值应该是ZHS16GBK。
2.在Mysql的安装目录中找到my.ini文件,修改配置如下:
把Mysql的客户端和服务器的字符集改为gbk后,在Mysql中新建的数据库,默认的字符集就是gbk了。
当数据库的字符集为gbk,在该数据库下建的表,其字符集也默认为gbk。
3. 在ODI的Topology manager中创建目标数据服务器
Topology->物理体系结构->技术->MySQL,右键MySQL,选择“插入数据服务器”
在“数据服务器”的编辑框中,“定义”标签下,输入数据服务器名称,用户和口令:
“JDBC”标签:
JDBC URL的填写如下:(IP地址,端口号,数据库名,用户名,用户密码根据实际情况改写,红色部分照抄下来就行)
jdbc:mysql://172.18.33.231:3306/test_gbk?user=root$password=wiscom&useUnicode=true&aut oReconnect=true&characterEncoding=gbk
4.完成上述设置之后,用ODI从ORACLE数据库向MYSQL数据库进行数据集成时,字段内容为中文时就可以正确集成,在MYSQL中能正确显示中文。
Mysql常见中文乱码及解决方案
Mysql常见中⽂乱码及解决⽅案
在Mysql中会经常碰到中⽂乱码问题,与oracle相⽐,不但库拥有字符集,连表,或字段都拥有⾃⼰的字符集
导致我们在查询,新增记录时出现各种各样的乱码,或者是⾃⼰的终端上没有问题,在其它终端连接就会出现问题。
常见乱码分析:
1,登录⽅式,导致的中⽂乱码:
2,操作系统语⾔集:
$ cat /etc/sysconfig/i18n
显⽰UTF-8格式,也可以使⽤:
$ echo $LANG
可以使⽤ export LANG=C 进⾏修改。
但是重新登录后,乱码依然:
3,⽂件格式导致的中⽂乱码:
此时,在执⾏SQL脚本时就会报错:
这个解决⽅案,是将⽂件修改成utf-8格式,或者在VI中修改:
:set fileencoding=utf-8
在MYSQL中,⼀个汉字占3个字节,如何避免乱码:
1,编辑⽂件时,指定与数据库相同字符集,⽐如gbk
2,在初始化数据库时,对库的字符集,表,以及字段进⾏统⼀编码设置,⽐如gbk
3,在代码中,指定字符集:
mysql_set_character_set(mysql, "utf8");
或者执⾏:
mysql_query('SET NAMES UTF8')。
MySQL中文乱码问题的解决方法
MySQL中文乱码问题的解决方法在使用MySQL数据库过程中,经常会遇到中文乱码的问题。
这是由于MySQL默认使用的字符集是Latin1,而大部分中文系统使用的是UTF-8字符集所致。
本文将介绍在MySQL中解决中文乱码问题的几种方法。
一、修改MySQL配置文件MySQL配置文件(f)是MySQL服务器的设置文件,通过修改该文件可以改变MySQL的默认字符集。
在Linux系统中,该文件通常位于/etc/mysql/f或者/etc/f。
在Windows系统中,该文件通常位于MySQL安装目录下的my.ini文件。
步骤如下:1. 找到f或my.ini文件并打开。
2. 在[mysqld]部分添加或修改以下内容:```[mysqld]character-set-server=utf8collation-server=utf8_general_ci```3. 保存文件并重启MySQL服务。
二、修改数据库、数据表、字段字符集如果修改MySQL配置文件没有解决中文乱码问题,可以尝试直接修改数据库、数据表、字段字符集。
1. 修改数据库字符集可以使用ALTER DATABASE语句修改数据库的字符集。
例如:```ALTER DATABASE database_name CHARACTER SET utf8 COLLATEutf8_general_ci;```2. 修改数据表字符集可以使用ALTER TABLE语句修改数据表的字符集。
例如:```ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;```3. 修改字段字符集可以使用ALTER TABLE语句修改字段的字符集。
例如:```ALTER TABLE table_name MODIFY column_name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci;```其中,table_name为表名,column_name为字段名。
mysql彻底解决输入和显示中文字段乱码问题
1、mysql中文乱码问题有两个,第一个是客户端的中文输入乱码问题,第二个是在黑窗口显示结果时乱码。
第一个问题需要设置客户端client和连接connection的编码为:GBK;
第二个问题需要设置结果显示results的编码为:GBK;
先查询现在的编码:
然后修改编码:
但是这样的改变是动态的,也就是当下一次性的,如果下次重启了数据库,其编码有会恢复为原来的样子了。
----------------------------------------彻底解决中文乱码问题------------------------------------------------------------
1、先得找到 .ini 数据库配置文件。
在Mysql 5.5版本以下的旧版本,.ini 文件可以直接在Mysql的安装目录中找到。
在Mysql 5.5及以上的新版本,.ini 文件就需要在C:\ProgramData\MySQL\MySQL Server 5.5中才能找到!
但C盘下的ProgramData目录是隐藏的,所以先选择显示隐藏项目:
修改.ini 文件中的[mysql] 下面的default-character-set = gbk
这种修改方法是静态的,不管是否重启,都有效。
安装配置Mysql5.5并且完美解决中文乱码问题
安装配置Mysql5.5并且完美解决中文乱码问题•启动服务windows下DOS命令窗口输入指令:查看服务是否启动:net help services启动mysql服务:net start mysql停止mysql服务:net stop mysqllinux下在bash下,输入指令:查看服务状态:service mysqld status启动mysql服务:service mysqld start停止mysql服务:service mysqld stop•登陆mysql -u[这里输入用户名] -p[这里输密码]•忘记管理员密码先停止mysql服务然后输入:mysqld --skip-grant-tables,此时mysqld服务会被启动在命令行输入:mysql -uroot,以不用密码的方式登录root输入:update er set password=PASSWORD('[这里输入你的新密码]') where user='root'输入:flush privileges退出,重启mysql服务,用新密码即可登录•创建数据库用root账户登录mysql控制台查看所有数据库:show databases;创建数据库:create database openfire;创建数据库管理员并分配权限:grant all on openfire.* to openfire@localhost identified by "openfire"切换数据库:use openfire;查看当前数据库中所有的表:show tables;•简单的权限控制用root用户登录mysql命令行增加权限:输入grant all on [数据库名+表名也可以*.*] to [用户名]@[ip地址] identified by '[密码]'例如:grant all on admin.* to ************.100.156 identified by 'password01!'上述语句的意思:让otalk用户可以在ip地址为172.17.100.156的主机上拥有admin数据库下的所有表的所有访问权限移除权限:revoke all privileges on ers from otalk@localhost•Mysql5.5中文问题完美解决方案暂停mysql服务,在Mysql安装目录下找到my.ini文件,在[client]下面添加一句:default-character-set=utf8将[mysqld]下面更改两句:character-set-server=utf8collation-server=utf8_general_ci然后重启mysql服务。
关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)
关于Mysql中⽂乱码问题该如何解决(乱码问题完美解决⽅案)最近两天做项⽬总是被乱码问题困扰着,这不刚把mysql中⽂乱码问题解决了,下⾯⼩编把我的解决⽅案分享给⼤家,供⼤家参考,也⽅便以后⾃⼰查阅。
⾸先:⽤show variables like “%colla%”;show varables like “%char%”;这两条命令查看数据库与服务端的字符集设置如果查看出来都是gbk2312,或 gbk,那么就只能⽀持简体中⽂,繁体和⼀些特殊符号是不能插⼊的,我们只有修改字符集为UTF-8,修改⽅法如下:⽤记事本或UitraEdit打开mysql数据库安装⽬录下的my.ini⽂件打开,然后Ctrl+F搜索default-character-set,将后⾯的字符集修改为UTF8,注意要修改两个地⽅,⼀个事客户端的,⼀个是服务端的。
然后保存,重启mysql服务、、进去继续⽤show variables like “%colla%”;show varables like “%char%”;着两条语句查询⼀下字符集。
如图:到此就配置完成了。
注意:如果以前建有数据库没有删除的请⽤ show database 数据库名;和 show create table 表名;查看⼀下数据库和表的字符集是否为UTF8 ,因为修改my.ini⽂件,它不能修改原来数据库的的字符集。
在命令⾏下⾯可以⽤alter database 数据库名 character set “字符集”;命令来修改数据库字符集还有⼀点要注意的是,修改为UTF8以后,在命令⾏下⾯中⽂是乱码的,只输出到页⾯或控制台是正常的,这个问题我也上⽹查了⼀下,貌似命令⾏下⾯不⽀持UTF8,我也不太清楚。
当修改以后,在命令⾏下⾯如果要插⼊中⽂,可以在插⼊语句之前执⾏,set names gbk2312;就可以插⼊中⽂了,但是不能插⼊繁体和⼀些特殊符号。
以上就是这⼏天解决乱码的成果。
Mysql中文乱码问题完美解决方案
转载:Mysql中文乱码的解决方法第一种方法,很精辟的总结:经常更换虚拟主机,而各个服务商的MYSQL版本不同,当导入数据后,总会出现乱码等无法正常显示的问题,查了好多资料,总结出自己的一点技巧:WINDOWS 下导入应该这样使用MYSQL的命令在DOS 命令下进入mysql的bin目录下,输入mysql -uroot -p密码数据库名称<要恢复的数据库, 例如我们要把D盘的一个名称为test.sql的数据库恢复到本地的test2这个数据库,那么就这样: mysql -uroot -p密码test2以前的国外主机用的Mysql是4.x系列的,感觉还比较好,都无论GBK和UTF-8都没有乱码,没想到新的主机的Mysql是5.0版本的,导入数据后,用Php读出来全是问号,乱码一片,记得我以前也曾经有过一次切换出现乱码的经验,原因肯定是Mysql版本之间的差异问题。
只好查资料,发现了一个解决方法,就是在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用SET NAMES GBK,代码如下:$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);mysql_query("SET NAMES 'GBK'");数据库字符集为utf-8连接语句用这个mysql_query("SET NAMES 'UTF8'");mysql_query("SET CHARACTER SET UTF8");mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");还有个方法就是,如果你自己的机器的话,可以更改MYSQL字符集,一般在MYSQ4和MYSQL5这两个版本中有效。
MySQL中文乱码问题解决方案
查看表的设计表中的字符集 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
这篇文章主要给大家介绍了关于mysql用户账户管理和权限管理的相关资料文中通过示例代码介绍的非常详细对大家的学习或者工作具有一定的参考学习价值需要的朋友们下面随着小编来一起学习学习吧
MySQL中 文 乱 码 问 题 解 决 方 案
1、linux 中 MySQL 出现中文乱码问题如下操作 编辑vi /etc/f 文件,添加图中标记三行
[client] default-character-set=utf8 [mysqld] character-set-server=utf8 [mysql] default-character-set=utf8连接数据库出现中文乱码问题 查看编辑连接中的编码格式
Mysql 乱码的解决
Mysql 乱码的解决Mysql 乱码的解决首先在命令行下进入mysql编辑模式输入mysql>show variables like ‘char%’; 查看数据库字符集设置client、connection、result 和命令行客户端相关(windows 下命令行客户端必须要设置gbk )database server system 和服务器相关字符集(system字符集不可修改)* 实际开发中建议大家将database 和server 字符集设置为utf8修改完database server system 和服务器相关字符集后需要重新启动mysql才能生效在服务里重启就可以,还可以,在命令行:停止命令:net stop mysql启动命令:net start mysqlmysql核心配置文件my.ini 如果linux f[mysql] 主要配置命令行客户端参数default-character-set=gbk ---- 影响client、connection、result[mysqld] 配置服务器参数character-set-server=utf8 ----- 影响database server备注:如是win7系统的话,因为权限问题不让修改,你可以把文件拷贝出来,修改完在放回去,(主要是是mysql安装在C盘会出现这样的问题)如果服务器server 字符集已经设置utf8 建立数据库数据表默认utf8 ----- 插入数据一定没有乱码如果服务器没有设置server字符集,默认latin1 , 建立数据库指定字符集utf-8 建表指定字符集utf-8 (有乱码)解决方案一:设置server 字符集,重新建立数据库和表解决方案二:jdbc:mysql:///db?useUnicode=true&characterEncoding=utf-8 (默认传输字符集utf8/gbk)。
如何解决MySQL中文乱码和字符集问题
如何解决MySQL中文乱码和字符集问题MySQL是一种开源的关系型数据库管理系统,被广泛用于各种业务应用和网站开发中。
然而,在处理中文字符时,MySQL往往会遇到乱码和字符集问题,给使用者带来很多麻烦。
本文将探讨如何解决MySQL中文乱码和字符集问题,并提出一些优化建议。
一、了解字符集和字符编码在解决MySQL中文乱码和字符集问题之前,我们首先需要了解一些基本概念,即字符集(Character Set)和字符编码(Character Encoding)。
字符集是一种规范,用于定义字符的集合和字符的规则。
常见的字符集有ASCII、UTF-8、GBK等。
字符编码是字符集在计算机中存储和传输的方式。
常见的字符编码有ASCII、UTF-8、UTF-16、GB2312等。
二、设置数据库、表和字段的字符集和字符编码解决MySQL中文乱码和字符集问题的第一步是正确设置数据库、表和字段的字符集和字符编码。
1. 设置数据库字符集和字符编码在创建数据库时,可以指定数据库的字符集和字符编码。
例如:CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;这样,数据库的字符集就被设置为utf8mb4,字符编码则是utf8mb4_unicode_ci。
确保数据库的字符集和字符编码与应用程序及其它组件保持一致。
2. 设置表的字符集和字符编码在创建表时,也可以指定表的字符集和字符编码。
例如:CREATE TABLE mytable (id INT,name VARCHAR(30)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;这样,表的字符集和字符编码与数据库保持一致。
3. 设置字段的字符集和字符编码在创建字段时,可以指定字段的字符集和字符编码。
例如:CREATE TABLE mytable (id INT,name VARCHAR(30) CHARACTER SET utf8mb4 COLLATEutf8mb4_unicode_ci);这样,字段的字符集和字符编码与表保持一致。
mysql中文乱码问题的解决方法【详细】
mysql中文乱文问题1Mysql数据库1.1安装数据库mysql1.2常见错误下载并安装1.3安装mysql管理工具SQLyogSQLyog的安装和使用方法:https:///qq_32534441/article/details/849695491.4创建数据库和表1.4.1常见错误(1)插入数据时,注意逗号与下一个字段间有空格,否则会报错。
(2)Mysql数据库中输入中文乱码解决乱码的方法如下:第一步:找到安装mysql的目录找到my.ini 文件;第二步:使用记事本打开my.ini文件,找到这个地方看看default-character-set 是不是utf8不是的话改为utf8即可!(以前的版本可能没有这句话直接加上就好了!)# MySQL client library initialization.[client]port=3306[mysql]default-character-set=utf8第三步:在mysql数据库cmd中输入:show variables like'%char%';Show create database test;Show create table student;查看数据库的编码格式!第四步:改变原有数据库的编码方式:set character_set_database=utf8;set character_set_server=utf8;set character_set_client=gbk;set character_set_connection=gbk;set character_set_results=gbk;set names gbk;最后的编码格式为:第五步:将列的编码也改为utf8第六步:去掉隐藏语言选项前的勾,并将表中需要显示中文的列的字符编码改为utf8。
彻底解决mysql中文乱码
彻底解决mysql中⽂乱码mysql是我们项⽬中⾮经常常使⽤的数据型数据库。
可是由于我们须要在数据库保存中⽂字符,所以经常遇到数据库乱码情况。
以下就来介绍⼀下怎样彻底解决数据库中⽂乱码情况。
1、中⽂乱码1.1、中⽂乱码create table user(name varchar(11)); # 创建user表insert into table user("carl"); # 加⼊数据select * from user;insert into user value("哈哈");⽆法插⼊中⽂字符:1.2、查看表字符编码mysql> show create table user \G;*************************** 1. row ***************************Table: userCreate Table: CREATE TABLE `user` (`name` varchar(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin11 row in set (0.00 sec)我们能够看到表的默认字符集是latin1.所以我们在创建表的时候就须要指定表的字符集:create table user(name varchar(11)) default charset=utf8;这样在Linux⾥⾯能够訪问并且能够插⼊与訪问这个表了。
1.3、数据库与操作系统编码尽管在服务器端能够显⽰中⽂正常,可是在客户端可能会显⽰乱码。
由于我们的服务器是UTF8。
并且数据库的编码也存在问题。
这⾥我们能够看character_sert_database与character_set_server的字符集都是latin1.那么在mysql数据库中,server,database,table的字符集都默认是latin1.以下我们就来看看怎样解决mysql乱码情况。
Linux中文显示乱码问题解决方法(编码查看及转换)
Linux中⽂显⽰乱码问题解决⽅法(编码查看及转换)Linux中⽂显⽰乱码问题解决⽅法(编码查看及转换)1,⽰例图中名为⼀个.sql⽂件的⼀段内容,是⼀个数据库⽂件。
其在windows中打开显⽰正常,在Linux中,中⽂部分显⽰为乱码。
注意:这个与数据库乱码的情况不同,属于⽂件内容的乱码。
2,分析Linux系统与windows系统在编码上有显著的差别。
Windows中的⽂件的格式默认是GBK(gb2312),⽽Linux系统中⽂件的格式默认是UTF-8。
这两个系统就好⽐是中国和⽇本。
⽂件就好⽐是⼀个⼈,如果要在另外的国家居住就要办理居住许可证,使⽤他国的证件(编码和字符集),否则是不被允许的⿊户。
因此,解决中⽂乱码问题要从编码和字符集着⼿。
⽂件出现编码错误的原因:当前系统的字符集有问题某个⽂件的编码有问题3,解决⽅案3.1⽅案⼀:从系统的字符集处理当系统中多个⽂件的内容出现乱码问题,或者中⽂⽂件名显⽰乱码时,就先从系统的字符集处理。
常⽤字符集:中⽂LANG=“zh_CN.UTF-8”英⽂LANG=“en_US.UTF-8”或LANG=C1,查看字符集<1>查看当前系统默认采⽤的字符集locale<2>查看系统当前字符集echo $LANG<3>查看系统是否安装中⽂字符集出现zh开头的,即为安装了中⽂字符集如未安装,需执⾏: yum -y groupinstall chinese-supportlocale -a |grep zh2,修改系统字符集<1>修改系统字符集为中⽂如果前⾯查看到的系统当前的字符集是英⽂,通常修改系统字符集为中⽂即可成功。
临时修改(当前终端⽣效):export LANG="zh_CN.UTF-8"永久修改:echo"export LANG="zh_CN.UTF-8" >> /etc/proflilesource /etc/profile<2>查看echo $LANG3.2 解决⽅法⼆:从⽂件的编码处理当系统的字符集为中⽂,⽂件的中⽂部分仍然显⽰乱码,就从⽂件的编码格式处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
| character_set_database | gb2312
| character_set_filesystem | binary
| character_set_results | gb2312
| character_set_server | gb2312
分别在如下几项中添加字符集:
[client]
default-character-set=gb2312
[mysqld_safe]
default-character-set=gb2312
[mysqld]
default-character-set=gb2312
#default-table-type=innodb
[mysql]
default-character-set=gb2312
再重启mysql让配置生效:
pds:~# service mysql restart
Shutting down MySQL done
Starting MySQL done
再次登陆mysql后,查看变量:
mysql>show variables like '%char%';
+----------------------+---------------------
| Variable_name | Value
+-----------------------+---------------------
| character_set_client | gb2312
linux下mysql中文乱码解决方法
2008-08-22 16:56
linux下mysql中文乱码解决方法
系统环境:suse linux server 10,mysql 5.0
安装mysql后,默认的字符集是latin1。在linux下安装mysql不像在windows上安装那像,可以选择字符集(即使当时使用了默认的字符集,安装后也可以在安装目录下修改my.ini文件),但是在linux就不太一样了。
| character_set_system | utf8
| character_sets_dir | /usr/share/mysql/charsets/
+---------------------+----------------------
如此显示就完成了配置了,在表中插入一条含中文的记录,就不再出现乱码,但是原来插入的记录很可能还是乱码,因ຫໍສະໝຸດ 原来的字符集与当前字符集不一致。
这就是它默认的设置。
接下来到/usr/share/mysql/目录下,将f文件(使用其它实例配置文件也行)拷贝到/etc目录下:
pds:~# cp /usr/share/mysql/f /etc/f
pds:~# vi /etc/f
| character_set_server | latin1
| character_set_system | utf8
| character_sets_dir | /usr/share/mysql/charsets/
+---------------------+----------------------
| character_set_client | latin1
| character_set_connection | latin1
| character_set_database | latin1
| character_set_filesystem | binary
| character_set_results | latin1
在shell输入mysql登陆后:
mysql>show variables like '%char%';
回车后显示:
+----------------------+---------------------
| Variable_name | Value
+-----------------------+---------------------