mysq乱码问题
不乱码的思想
liunx字符集→linux客户端字符集(例如:ssh)→mysql客户端字符集→mysql服务端字符集→库的字符集→表的字符集→程序字符集统一
mysql表跟库,库跟服务端字符集
linux字符集设定
vim /etc/sysconfig/i18n #设定linux的字符集为utf-8
LANG="zh_CN.UTF-8" . /etc/sysconfig/i18n #全局生效
echo $LANG
zh_CN.UTF-8
mysql字符集设定
show variables like 'character_set%'; #查看mysql字符集
①character_ set. client |utf8 #客户端字符集,set names utf8
②character_ set_ .connection| utf8 #连接字符集,set names utf8
③character_ set_ database|utf8 #数据库字符集,配置文件指定或建库建表指定。
④character. set. resplts Iutf8 #返回结果字符集,set names utf8 ;
⑤character_ set. server | lutf8 #服务器字符集,配置文件指定或建库建表指定。
其中,①②④3个参数默认情况采用linux系统字符集设置,人工登录数据库执行“setnames latin1”以及mysql指定字符集登录操作,都是改变了mysql客户端的client、
connection、results 3个参数的字符集为latin1,从而解决了插入中文乱码的问题,这个操作也可以通过更改my .cnf配置文件客户端模块的参数来实现,并且永久生效。。
。
mysql客户端字符集
改变character-set-client的字符集 (mysql客户端字符集)
vim my.cnf
default-character-set=utf-8 #将这条命令加入到client标签内 无需重启myslq 退出登录既生效
客户端临时生效的命令 进入mysql
set names utf8; #此命令是临时改变character_ set. client(客户端字符集) character_ set_ .connection(连接字符集) character. set. resplts(返回结果字符集)的字符集
mysql服务端字符集
vim my.cnf
default-character-set=utf8 #5.1版本以前的mysql使用 加入在mysqld标签内
character-set-server=utf8 #5.5版本的mysql
mysql表库字符集
建库表时,不指定字符集 默认库跟mysql 字符集 表跟库的字符集
在创建数据库时设定
create database 库名 character set 'utf8' collate 'utf8_general_ci'; 指定库字符集为utf8
在创建表时设定字符集
create table 表名(表格式) default charset=utf8; 指定表字符集为utf8
对于已有的数据修改字符集
对于已有的数据库想修改字符集不能直接通过“ alter database characterset*”。或"alter table tablename characterset *,这两个命令都没有更新已有记录的字符集,而只是对新创建的表或者记录生效。。已经有记录的字符的调整,必须先将数据导出,经过修改字符集后重新导入后才可完成。。修改数据库库默认编码:
1导出表结构
mysqldump -uroot -p -default-character-set =latin1 -d dbname >alltable.sql--default-character-set =utf8表示以GBK字符集进行连接 -d只导表结构。
2.把表结构改为utf8
alltable.sql 将latin1改成utf8
3.确保数据不再更新的情况下导出所有数据
mysqldump -uroot p --quick --no-create-info --extended-insert --default-character-set=latin1 dbname >alldata.sql
--quick :用于转储大的表,强制mysqldump从服务器一次一行的检索数据而不是检索所有 行,并输出前CACHE到内存中。
--no-create-info :不创建CREATE TABLE语句
--extended-insert :使用包括几个VALUES列表的多行INSERT语法,这样文件更小,IO也小,导入数据时会非常快
--default-character-set =latin1 #按照原有字符集导出数据,这样导出的文件中,所有中文都是可见的,不会保存成乱码。
4.在alldata.sql数据文件里吧set names latin 1修改为set names utf8
5.建库
create database 库名 character set 'utf8' collate 'utf8_general_ci';
6.把表导回去
mysql -uroot -p'密码' <alltable.sql
7.把数据导回去
mysql -uroot -p'密码' <alldata.sql
mysq乱码问题的更多相关文章
- java web 学习十(HttpServletRequest对象1)
一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...
- MySQL如何永久解决由dos编码格式导致MySQ的显示乱码
MySQL如何永久解决由dos编码格式导致MySQ的显示乱码 Ⅰ.新建文件 changeCode.txt Ⅱ.粘贴下面代码(作用:将默认的GBK(936)修改为UTF-8(65001)) Window ...
- mysq查询语句包含中文以及中文乱码,字符集 GBK、GB2312、UTF8的区别
一.查看mysql 字符集设置情况 使用Navicat for Mysql查看工具,打开命令列界面,输入show variables like '%char%';如下图,查看当前mysql字符集设置情 ...
- docker上启动mysql镜像,mysq中记录乱码解决方法
在docker上启动一个mysql, 1. docker pull mysql 2. docker run --name mysql_dev -p 3306:3306 -e MYSQL_ROOT_PA ...
- 解决mysql中文乱码(总)
转自:http://hi.baidu.com/cnvienna/blog/item/2e99efdfd94fc61862279801.html MySQL会出现中文乱码的原因不外乎下列几点: .ser ...
- centos6.7下安装mysql5.6.22同时解决中文乱码问题
1.下载 http://dev.mysql.com/downloads/mysql/ 或者使用wget下载: wget http://dev.mysql.com/get/Downloads/MySQL ...
- 解决乱码的方法是,在执行SQL语句之前,将MySQL以下三个系统参数设置为与服务器字符集character-set-server相同的字符集
character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数据库字符集. characte ...
- MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题 收藏 MySQL中涉及的几个字符集
MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的.character-set-database:数据 ...
- mysql 乱码问题的捣鼓
mysql在ubuntu的终端下出现中文乱码的问题: 先学着在不改数据库的情况下对my.cnf配置文件进行修改, 主要的是设置 default-character-set=utf8 但是设置完后数据库 ...
随机推荐
- Windows地址栏的妙用
主角: 它就是windows自带的一个小工具->地址栏,可以通过在任务栏右键选择工具栏-地址栏添加使用. 妙用: 一.打开文件 使用方法:D:\Temp(文件路径) 小提示:快速进入回收站:Re ...
- 转载--Java中的PO、DO、DTO、 VO的概念
Java中的PO.DO.DTO. VO的概念 写的很清晰,学习了.
- ZooKeeper--动物管理员
复杂的软件集群系统从来绕不开高可用.负载均衡等问题,大数据系统更是如此. 高可用:计算机系统的可用性定义为系统保持正常运行时间的百分比,具体手段有自动检测,自动切换,自动恢复等. 负载均衡:主要解决单 ...
- 逆向破解H.Koenig 遥控器 Part 2
逆向破解H.Koenig 遥控器 Part 2 到目前为止,我们已经知道了RF收发器的安装过程,下面是我们所掌握的东西 : l 无线电收发器是一个Avantcom A7105 l 调制是FSK l 频 ...
- Lua游戏逆向及破解方法介绍
Lua游戏逆向及破解方法介绍 背景介绍 随着手游的发展,越来越多的Cocos-lua端游开发者转移到手游平台.Lua脚本编写逻辑的手游也是越来越多,如梦幻西游.刀塔传奇.开心消消乐.游龙英雄.奇迹 ...
- python+Appium自动化:Appium-desktop界面简介
Appium Desktop是一款适用于Mac,Windows和Linux的开源应用程序,提供了更加优化的图形界面. Appium Desktop是由Simple.Advanced.Presets三个 ...
- jquery中.each()方法遍历循环如何终止方法
使用return false 终止循环 function checkStar(obj){ var flag=false; //获取本节点星级 var star = obj.getAttribute(& ...
- 第二章 Vue快速入门--8 v-bind指令的学习
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 第一章 Vue介绍
5 MVC和MVVM的关系图解 MVVM是前端视图层的分层开发思想,主要把每个页面,分层了M.V和VM.其中,VM是MVVM思想的核心,因为VM是M和V之间的调度者 6 Vue基本代码和MVVM之间对 ...
- stm32之HAL串口中断的callback流程图