数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

linux系统下mysql中文乱码解决


发布日期:2019年03月10日
 
linux系统下mysql中文乱码解决

改默认编码

/etc/initd/mysql start (stop) 为启动和停止服务器

/etc/mysql/ 主要配置文件所在位置 f

/var/lib/mysql/ 放置的是数据库表文件夹这里的mysql相当于windows下mysql的date文件夹

启动mysql后以root登录mysql

isher@isherubuntu:~$ mysql u root

>show variables like character%; #执行编码显示

+++

| Variable_name | Value |

+++

| character_set_client | latin |

| character_set_connection | latin |

| character_set_database | latin |

| character_set_filesystem | binary |

| character_set_results | latin |

| character_set_server | latin |

| character_set_system | utf |

| character_sets_dir | /usr/share/mysql/charsets/ |

+++

在某些时候我们续要修改mysql默认数据库的编码以保证某些迁移的程序可以正常显示编辑f文件进行编码修改windows可以直接用Mysql Server Instance Config Wizard 进行设置

在linux下修改个f的个/etc/mysql/f文件

找到客户端配置[client] 在下面添加

### 默认字符集为utf

defaultcharacterset=utf

在找到[mysqld] 添加

### 默认字符集为utf

defaultcharacterset=utf

### (设定连接mysql数据库时使用utf编码以让mysql数据库为utf运行)

init_connect=SET NAMES utf

修改好后重新启动mysql 即可查询一下show variables like character%;

##重新启动mysql

/etc/initd/mysql start (stop) 为启动和停止服

在某些时候我们续要修改mysql默认数据库的编码以保证某些迁移的程序可以正常显示编辑f文件进行编码修改windows可以直接用Mysql Server Instance Config Wizard 进行设置

+++

| Variable_name | Value |

+++

| character_set_client | utf |

| character_set_connection | utf |

| character_set_database | utf |

| character_set_filesystem | binary |

| character_set_results | utf |

| character_set_server | utf |

| character_set_system | utf |

| character_sets_dir | /usr/share/mysql/charsets/ |

+++

此方法用于标准mysql版本同样有效对于/etc/f文件需要从mysql/supportfiles的文件夹cp f一份到/etc/f

以上部分设置了mysql数据库默认编码为utf不知是哪位大侠的总结非常感谢这位大侠

本人所范错误

设置编码前建立的数据库在测试插入数据后仍然乱码此时在数据库中就显示中文乱码很是郁闷停止学习解决乱码

在网上大量收集资料都不成功最后突然想到数据库是在编码之前建立的编码之后插入数据会不会乱码呢于是重新建库建表插入数据数据库中中文显示正常了再来页面上看看OK页面也正常了

总结设置编码后数据库需要重建那么以前的数据怎么办呢其实很简单了在删库前先备份一份了重新把数据导进来一切都解决了开始您的编程之旅吧

               

上一篇:利用MySQL加密函数保护数据

下一篇:MySQL 文件系统