mysql定义字符为utf-8格式
来源:互联网 发布:科比历年数据统计 编辑:程序博客网 时间:2024/05/22 05:09
查看数据库字符集
进入MySQL之后,运行语句:
1234567891011121314
mysql> show variables like 'char%'; +--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | latin1 || character_set_filesystem | binary || character_set_results | utf8 || character_set_server | latin1 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql/charsets/ |+--------------------------+----------------------------+
这样可以看到MySQL所使用的字符集。
开始更改设置
查看当前MySQL所使用的配置文件的顺序
123
$ mysql --help | grep Default -A 1Default options are read from the following files in the given order:/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
修改配置文件
第一次安装MySQL,/etc/my.cnf
文件应该是不存在的。所以打开/etc/mysql/my.cnf
:
1
vi /etc/mysql/my.cnf
在以下3个部分都做相应改动:
(1)在[client]字段里加入default-character-set=utf8,如下:
1234
[client]port = 3306socket = /var/lib/mysql/mysql.sockdefault-character-set=utf8
(2)在[mysqld]字段里加入character-set-server=utf8,如下:
1234
[mysqld]port = 3306socket = /var/lib/mysql/mysql.sockcharacter-set-server=utf8
也可以这样改:
1234
[mysqld]collation-server = utf8_unicode_ciinit-connect=’SET NAMES utf8′character-set-server = utf8
(3)在[mysql]字段里加入default-character-set=utf8,如下:
123
[mysql]no-auto-rehashdefault-character-set=utf8
重启MySQL
1
sudo service mysql restart
查看是否生效
1234567891011121314
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 | utf8 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql/charsets/ |+--------------------------+----------------------------+
如果出错了
如果重启失败了,那么可以到/var/log/mysql/error.log
文件中查看输出的启动错误。
修改后,运行sudo service mysql start
来启动服务。
表的字符集
修改了MySQL的默认字符设置,并不能更改已经生效的字符设置。如果某张表的字符仍是乱码,那么说明它的字符集仍然为Latin1。
可以这样查看某张表的建表情况:
123
SHOW CREATE TABLE table_name; .....省略一大堆..() ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
所以最佳实践是:
在建表语句中,显式地声明该表所要使用的字符集
0 0
- mysql定义字符为utf-8格式
- 确定字符编码是否为UTF-8格式 函数 (1)
- linux下更改MySQL数据库编码格式为utf-8
- mysql中设置默认字符编码为utf-8
- mysql 插入utf-8字符
- 批量转换文件为utf-8格式
- eclipse设置编码格式为utf-8
- 改变cmd编码格式为utf-8
- myeclipse配置编码格式为utf-8
- eclipse指定编码格式为UTF-8
- Eclipse 设置编码格式为UTF-8
- studio 设置编码格式为 UTF-8
- 项目修改为UTF-8字符编码
- mysql数据库插入中文以及乱码问题解决(统一设置为utf-8)格式
- 修改MySQL数据库字符编码为UTF-8解决中文乱码
- mac下mysql 5.7.19字符编码设置为utf-8的方法
- MYSQL创建utf-8格式的数据库
- MYSQL创建utf-8格式的数据库
- c++ 智能指针及 循环引用问题
- gradle编译spring源码遇到的错误
- Scala Cookbook翻译 Chapter 1.Strings 第二部分
- leetcode Submission Details
- 使用java连接hive,并执行hive语句详解
- mysql定义字符为utf-8格式
- hadoop完全分布式安装
- SVN操作心得
- csu 1804 有向无环图
- WebView---学习笔记
- buildroot学习(七)——at91sam9g45软件平台更新
- c语言防止缓冲区数据作为有效字符被读入
- Android7.0 Binder通信(2) 服务进程的注册
- Ubuntu 14.04 解決登錄界面無線循環的方法