1、在创建数据库后,就是使用数据库,首先插入一条记录,然后查看:
mysql> insert into CmsUser(username,password,area) value ("admin2","123456","北 京"); Query OK, 1 row affected, 1 warning (0.05 sec) mysql> select * from CmsUser; +--------+----------+----------+------+----------+ | userid | username | password | area | deptrole | +--------+----------+----------+------+----------+ | 1 | mzuser | NULL | NULL | NULL | | 2 | mzuser | 123456 | ?? | ?? | | 3 | admin | 123456 | ?? | NULL | | 4 | admin1 | 123456 | ?? | NULL | | 5 | admin2 | 123456 | ?? | NULL | +--------+----------+----------+------+----------+ 5 rows in set (0.00 sec)
发现中文插入后不显示
2、查看数据库的编码方式,为latin1
mysql> show create database example; +----------+------------------------------------------------------------------+ | Database | Create Database | +----------+------------------------------------------------------------------+ | example | CREATE DATABASE `example` /*!40100 DEFAULT CHARACTER SET latin1 */ | +----------+------------------------------------------------------------------+ 1 row in set (0.00 sec)
查看表的编码方式,发现为latin1
mysql> show create table CmsUser; +---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | CmsUser | CREATE TABLE `CmsUser` ( `userid` int(8) NOT NULL AUTO_INCREMENT, `username` varchar(20) NOT NULL, `password` varchar(20) DEFAULT NULL, `area` varchar(10) DEFAULT NULL, `deptrole` varchar(10) DEFAULT NULL, PRIMARY KEY (`userid`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 | +---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
3、修改数据库和表的编码方式为utf8
mysql> alter database example character set utf8; Query OK, 5 rows affected (0.17 sec) Records: 5 Duplicates: 0 Warnings: 0 mysql> alter table CmsUser character set utf8; Query OK, 5 rows affected (0.17 sec) Records: 5 Duplicates: 0 Warnings: 0
alter table CmsUser modify column area varchar(10) character set utf8;
4、为了能够一次修改后以后都使用中文,也可以直接修改配置文件/etc/mysql/my.cnf
[client] port = 3306 socket = /var/run/mysqld/mysqld.sock default-character-set=utf8 //添加内容 [mysqld] #default-character-set=utf8 //添加内容,但启动失败 character-set-server=utf8 //添加内容
然后重启数据库
/etc/init.d/mysql restart
查看数据库字符集,其中client和database都成了utf8
mysql> show variables like "%char%" -> ; +--------------------------+----------------------------+ | 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 | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
5、 删除所有数据后重新插入
mysql> insert into CmsUser(username,password,area) value ("admin","123456","北京"); Query OK, 1 row affected (0.03 sec) mysql> select * from CmsUser; +--------+----------+----------+--------+----------+ | userid | username | password | area | deptrole | +--------+----------+----------+--------+----------+ | 1 | admin | 123456 | 北京 | NULL | +--------+----------+----------+--------+----------+ 1 row in set (0.00 sec)
问题解决!
相关推荐
MySQL中的汉字乱码问题是一个常见的困扰许多开发人员和数据库管理员的问题。这主要涉及到字符编码设置不正确,导致在存储或显示汉字时出现乱码。在MySQL中,字符集是用来定义如何存储和处理字符的规则,它包括服务器...
本文将深入探讨MySQL中文乱码问题的原因、解决方法,以及如何在创建数据库和表时避免这类问题。 首先,我们要了解字符集的概念。字符集(Character Set)是计算机系统用来表示文本的一系列符号和编码,例如ASCII、...
### MySQL中文乱码问题解决方案 在使用MySQL的过程中,中文乱码问题是常见的问题之一,尤其是在数据库初始设置不当时,更容易出现此类问题。本文将详细介绍如何彻底解决MySQL中的中文乱码问题。 #### 一、理解中文...
Java 中 MySQL 中文乱码问题解决方案 Java 中 MySQL 中文乱码问题是数据库开发中常见的问题之一,解决这个问题需要对数据库、JSP 和 Tomcat 进行相应的设置。下面我们将详细介绍解决该问题的方案。 数据库编码修改...
### Linux MySQL中文乱码问题解决 #### 背景与问题描述 在使用Linux系统部署MySQL数据库时,可能会遇到中文字符显示为乱码的问题。这一现象通常发生在对含有中文字符的数据进行读取或写入操作时。中文乱码不仅影响...
### MySQL中文乱码问题完美解决方案 #### 背景与问题描述 在处理MySQL数据库时,中文乱码问题是一个常见的技术挑战。这类问题通常源于字符集设置不一致或配置不当,尤其是在不同系统环境(如开发环境与生产环境)...
以下是对如何解决连接MySQL时中文显示乱码问题的详细解析。 ### 解决中文显示乱码的关键知识点 #### 1. **理解字符集和编码** 字符集(Character Set)是指用于表示文字的一系列符号集合,而编码(Encoding)则是将...
使用 docker 启动 mysql 容器可能会出现中文乱码的情况,这里记录如何制作支持中文的 mysql 镜像 docker版本:18.06 mysql 版本:5.7 1. 创建 my.cnf 文件 [client] default-character-set=utf8 [mysql] default-...
### MySQL中文乱码问题解决方案 在使用MySQL的过程中,中文乱码问题是经常遇到的一个难题,它不仅影响数据的正确性,还可能对整个系统的稳定性和用户体验造成负面影响。本文将详细介绍如何解决MySQL中的中文乱码...
总的来说,解决C#操作MySQL中文乱码问题的关键在于保持从数据库配置到代码再到文件的整个过程中的编码一致性,使用UTF-8编码,并确保在每个环节都正确地指定和处理。通过以上步骤,你应该能够成功地避免中文乱码问题...
### Hibernate与MySQL中文乱码问题解析及解决方案 #### 一、问题概述 在使用Hibernate框架进行Java应用程序开发的过程中,尤其是在连接MySQL数据库时,经常会遇到中文显示乱码的问题。这一问题通常发生在从数据库...
Ubuntu MySQL 中文乱码问题解决方案 在 Ubuntu 系统中,MySQL 数据库中文乱码问题是一个常见的问题。乱码问题可能是由于 MySQL 数据库的字符编码设置不正确所致。解决这个问题需要对 MySQL 数据库的字符编码进行...
在使用 SSH 连接 MySQL 数据库时,可能会出现中文乱码问题,这是因为 MySQL 的默认编码方式不是 UTF-8 导致的。解决这个问题需要从多方面入手,包括配置 Hibernate 的连接参数、修改 Spring 里的数据库连接、配置 ...
### 彻底解决C# ASP.NET 连接MySQL乱码问题 在开发过程中,尤其是在处理中文数据时,经常遇到的一个问题是数据库连接时出现乱码。本文将详细介绍如何彻底解决使用C# ASP.NET 应用程序连接 MySQL 数据库时出现的乱码...
综上所述,解决MySQL中文乱码问题的关键在于确保服务器、客户端、数据库和连接的字符集设置一致。在所有环节中,尤其是数据传输和解析时,都需要明确指定正确的字符集,以避免乱码的出现。在处理这些问题时,建议先...