<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="linux中mysql设置character_set_server_linux造成网页乱码的解决方法">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2023-04-26 11:22<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
linux中mysql设置character_set_server_linux造成网页乱码的解决方法




问题：在phpmyadmin中看到数据完全正常，但是网页中显示就会出现乱，数据编码utf8_general_ci没有任何问题。


发现问题：在phpmyadmin的SQL查询中，输入以下查询




XML/HTML代码


    SHOW VARIABLES LIKE 'character_set_%';




此时，发现character_set_server=latin1 ，我们需要把它改为utf-8即可。


 


修改方法：


 1、登录mysql,查看mysql默认的编码格式




XML/HTML代码


    show variables like &lsquo;character%&rsquo;;




如果现实-bash: show: command not found 说明没有登录mysql数据库，需要进行登录


2、修改my.cnf 文件


目录为/etc/my.cnf


如果系统中没有my.cnf文件、则需要创建此文件，具体步骤请看3，如果存在，直接跳过步骤3,直接进入步骤4


3、查找.cnf结尾的文件


命令find / -iname *.cnf -print


将上面搜索结果集中/usr/share/mysql目录下任意的一个文件复制到/etc/目录下


命令：cp /usr/share/mysql/my-large.cnf   /etc/my.cnf


4、编辑my.cnf文件


命令：vi /etc/my.cnf




XML/HTML代码


    在[client ]下面加入

    default-character-set=utf8

    在[ mysqld ] 下面加

    character_set_server=utf8

    init_connect=&rsquo;SET NAMES utf8&prime;(或者是SET NAMES &lsquo;utf8&prime;)







5、重启mysql


service mysql restart


 


下文附上我自己的处理情况供参考


我的问题：只有一项未改成utf8 (character_set_server=latinl)


操作：


1、命令：vi /etc/my.cnf


2、具体修改参数




XML/HTML代码


    在[ mysqld ] 下面加

    character_set_server=utf8







3、重启数据库服务


4、show variables like &lsquo;character%&rsquo;; (再查看就已经该过来了，测试发现乱码问题已解决)


参考1    参考2  如果win系统或者其他的情况可以自己修改配置文件。




附：Mysql问题报错：1273 - Unknown collation: 'utf8mb4_0900_ai_ci


1.mysql环境描述：


本机下载mysql版本：5.7.24


2.问题描述：


创建表时，使用&ldquo;DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci&rdquo;，出现报错&ldquo;1273 - Unknown collation: 'utf8mb4_0900_ai_ci&rdquo;。


sql指令报错


3.原因分析：


由于mysql中高版本的数据库导入低版本的mysql数据库产生的报错


使用的是低版本5.7.24mysql数据库，但是导入的是高版本8.0版本数据库。


4.解决方法：


方法1:


将语句&ldquo;DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;&rdquo;


替换成&ldquo;DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;&rdquo;


方法2:


将mysql数据库更新成高版本（8.0版本）。




</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
