您所在的位置:首页 > 新闻中心 > utf8编码问题及解决方案_Mysql_脚本之家
公司要闻
utf8编码问题及解决方案_Mysql_脚本之家
发布时间:2019-12-21 18:13
访问量:359

1. 目标:将 mysql 的 character_set_server 的值由 latin1 更改为 utf8

Linux mysql教程改换字符集编码与ubuntu下校订mysql暗中同意编码

种类进展到和服务器人机联作,通过post访谈服务器端jsp,jsp访谈服务器端mysql数据库,最终回到到顾客端的中文现身乱码难题。

暂时性:SET character_set_server=utf8 即可,一次性。

找到配置文件
      /etc/mysql/my.cnf
在[client]上边加上
  default-character-set=utf8
在[mysqld]下边加上
  default-character-set=utf8
重启服务器
service mysql restart
在mysql中键入命令:
  show variables like 'character_set_%'
展现结果如下:
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8

在总体育工作艺流程中,现身谬误的案由想必是五个:post未安装编码只怕编码不相符合,jdbc现身难点,linux下mysql开头码制难点。

永恒性:要求改造配置文件,见第2手续。

ubuntu下纠正mysql暗中认可编码(字符集卡塔尔

在经过冗杂的每种核查后,最后分明难题为mysql编码难题。下文介绍怎么样解决linux下mysql中文乱码难点。

2. mysql 5.7.21 的 support-files里不曾布署文件。

安装mysql
sudo apt-get install mysql-server #直接自动获取可用版本
也可以那样写
sudo apt-get install mysql-server-5.0 #安装mysql服务器5.0版本
安装后
/etc/init.d/mysql start (stop卡塔尔国 为运营和停止服务器
/etc/mysql/ 首要配备文件所在地方 my.cnf
/var/lib/mysql/ 放置的是数据库教程表文件夹,这里的mysql相当于windows下mysql的date文件夹
启动mysql后,以root登录mysql
[email protected]:~$ mysql -u 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/ |
+--------------------------+----------------------------+
在少数时候,大家续要更改mysql暗中同意数据库的编码,以有限支撑有个别迁移的程序能够健康显示,编辑my.cnf文件举办编码校订,windows能够直接用Mysql Server Instance Config Wizard 举办安装
在linux下修改3个my.cnf的1个/etc/mysql/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

先是步入mysql命令行方式,键入mysql -uroot -p 就可以步入。随后键入SHOW VARIABLES LIKE 'character_set_%';

新建my.cnf。能够建文本文件后直接改扩张名字为cnf。用Xcode或subline展开为佳。内容如下:

mysql教程退换字符集编码与ubuntu下修改mysql默认编码 找到配置文件 /etc/mysql/my.cnf 在[client]上边加上 default-character-set=utf8 在[mysqld]下面加...

+--------------------------+----------------------------------------------+| 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 | /alidata/server/mysql-5.1.73/share/charsets/ |
[mysqld]character-set-server=utf8[client]default-character-set=utf8[mysql]default-character-set=utf8

则已修正准确,而mysql暗中同意早先设置的都以latin1而非utf8。

3. 复制 my.cnf 到 /private/etc/

风姿罗曼蒂克种缓慢解决格局是改变表格的习性设置为utf8可能在创设表格的时候在结尾加上DEFAULT CHARSET=utf8。设置表格为utf8码。那样的艺术有希望失效。

cp /usr/local/mysql/support-files/my.cnf /private/etc/my.cnf

最根本的解决方法是开荒mysql配置文件改进。linux下mysql配置文件名称为my.cnf,目录为/etc/my.cnf,张开后根据以下操作:

留意:其实 /etc 是 /private/etc 的贰个牺牲品,复制到两个皆可。

--在 [mysqld] 标签下加上三行default-character-set = utf8character_set_server = utf8lower_case_table_names = 1 //表名不区分大小写--在 [mysql] 标签下加上一行default-character-set = utf8--在 [mysql.server]标签下加上一行default-character-set = utf8--在 [mysqld_safe]标签下加上一行default-character-set = utf8--在 [client]标签下加上一行default-character-set = utf8

4. 重启 mysql 服务器,进入mysql

上述标签若不可能全体找到也没涉及。再度张开mysql命令行,实行SHOW VARIABLES LIKE 'character_set_%';后若仍存在latin1,则在mysql命令行下试行以下命令:

mysql>show variables like '%char%';

set character_set_client = utf8; set character_set_server = utf8; set character_set_connection = utf8; set character_set_database = utf8; set character_set_results = utf8; set collation_connection = utf8_general_ci; set collation_database = utf8_general_ci; set collation_server = utf8_general_ci;

能够窥见编码值都改为utf8。

进行后再进行上述show 命令可得到指标结果。

这会儿再也建库建表,导入数据就能够平常显示汉语。

设置完毕后必要再度起动mysql,重启命令/etc/init.d/mysqld restart 。

总结

原数据表要求删除后重新建设构造。

如上所述是作者给大家介绍的Mac境况mysql5.7.21 utf8编码难点及解决方案,希望对大家具有助于,假使大家有其余疑问请给本人留言,小编会及时回复大家的。在那也特别多谢我们对台本之家网址的接济!

小结

1、改正/etc/my.cnf文件,扩张以下几行:

[client]# pipe=# socket=MYSQLport=3306default-character-set=utf8[mysql]no-beep# default-character-set=default-character-set=utf8# SERVER SECTION# ----------------------------------------------------------------------# The following options will be read by the MySQL Server. Make sure that# you have installed the server correctly  so it reads this # file.# server_type=3[mysqld]character_set_server=utf8

2、重启mysql服务:

service mysql stop;service mysql status;service mysql start;或者 service mysql restart;

总结

以上正是这篇小说的全部内容了,希望本文的剧情对我们的学习可能干活有所自然的参阅学习价值,谢谢大家对台本之家的帮助。倘令你想询问越来越多相关内容请查看上边相关链接