• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    linux下mysql乱码问题的解决方案

    项目进行到和服务器交互,通过post访问服务器端jsp,jsp访问服务器端mysql数据库,最终返回到客户端的中文出现乱码问题。

    在整个流程中,出现错误的原因可能是三个:post未设置编码或者编码不相符合,jdbc出现问题,linux下mysql初始码制问题。

    在经过繁琐的排查后,最终确定问题为mysql编码问题。下文介绍如何解决linux下mysql中文乱码问题。

    首先进入mysql命令行模式,键入mysql -uroot -p 即可进入。随后键入 SHOW VARIABLES LIKE 'character_set_%'; 

    若显示内容类似这样:

    +--------------------------+----------------------------------------------+
    | 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/ |

    则已修改正确,而mysql默认初始设置的都是latin1而非utf8。

    一种解决方法是更改表格的属性设置为utf8或者在创建表格的时候在最后加上DEFAULT CHARSET=utf8。设置表格为utf8码。这样的方法有可能失效。

    最根本的解决方法是打开mysql配置文件修改。linux下mysql配置文件名为my.cnf,目录为/etc/my.cnf,打开后按照以下操作:

    --在 [mysqld] 标签下加上三行
    default-character-set = utf8
    character_set_server = utf8
    lower_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

    上述标签若未能全部找到也没关系。再次打开mysql命令行,执行SHOW VARIABLES LIKE 'character_set_%';后若仍存在latin1,则在mysql命令行下执行以下命令:

    执行后再执行上述show 命令可得到目标结果。

    设置完成后需要重新启动mysql,重启命令 /etc/init.d/mysqld restart  。

    原数据表需要删除后重建。

    最终完成,大功告成。

    小结

    1、修改/etc/my.cnf文件,增加以下几行:

    [client]
    # pipe=
    # socket=MYSQL
    port=3306
    default-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 (see above) 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;

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

    您可能感兴趣的文章:
    • php写入mysql中文乱码的实例解决方法
    • MySQL字符集乱码及解决方案分享
    • mysql中插入表数据中文乱码问题的解决方法
    • JDBC连接mysql乱码异常问题处理总结
    • JDBC连接mysql处理中文时乱码解决办法详解
    • 详解mysql数据库中文乱码问题
    • 解决mysql数据库数据迁移达梦数据乱码问题
    上一篇:详解MySQL子查询(嵌套查询)、联结表、组合查询
    下一篇:详解数据库_MySQL: mysql函数
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    linux下mysql乱码问题的解决方案 linux,下,mysql,乱码,问,题的,