本文主要给大家简单讲讲如何编译安装mysql中的字符集,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望如何编译安装mysql中的字符集这篇文章可以给大家带来一些实际帮助。
1.编译安装的字符集情况
查看字符集的格式
mysql> show create table sanlang \G
*************************** 1. row ***************************
Table: sanlang
Create Table: CREATE TABLE `sanlang` (
`id` int(11) DEFAULT NULL,
`name` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
mysql>
插入数据
mysql> insert into sanlang values(22,"刘海笑");
Query OK, 1 row affected (0.00 sec)
测试
mysql> select * from sanlang;
+------+-----------+
| id | name |
+------+-----------+
| 1 | xiaoming |
| 2 | xiaoli |
| 3 | tt |
| 4 | gg |
| 22 | testdata |
| 22 | 刘海笑 |
+------+-----------+
6 rows in set (0.00 sec)
mysql>
更改字符集测试(更改字符集以后可以看出id为22的出现乱码):
mysql> set names gbk ;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from sanlang;
+------+----------+
| id | name |
+------+----------+
| 1 | xiaoming |
| 2 | xiaoli |
| 3 | tt |
| 4 | gg |
| 22 | testdata |
| 22 | Ц |
+------+----------+
6 rows in set (0.10 sec)
mysql>
2.mysql数据库常见的字符集介绍
3.MYSQL如何选择合适的字符集
1.如果处理各种各样的文字,发布到不同一眼国家地区,mysql来说UTF-8(每个汉字三个自己),如果应用需要处理英文,仅有少量汉字utf8更好 2.如果只需要支持中文,并且数据量很大,性能要求也很高,可选GBK(订场,每个汉字占用双字节,英文也占双字节),如需大量的运算, 比较排序等,定长字符集,更快,性能高 3.处理移动互联网业务,可能需要使用utf8MP4的字符集 4.老师建议:没有特别的需求,就选择utf8的字符集
4.查看系统字符集
mysql> show character set ;
mysql> 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 | /application/mysql-5.5.49/share/charsets/ |
+--------------------------+-------------------------------------------+
8 rows in set (0.00 sec)
mysql>
5.set names 控制客户端的字符集
可以看出set names只是控制了客户端的字符集
mysql> 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 | /application/mysql-5.5.49/share/charsets/ |
+--------------------------+-------------------------------------------+
8 rows in set (0.00 sec)
mysql> set name gbk;
mysql> show variables like 'character_set%';
+--------------------------+-------------------------------------------+
| Variable_name | Value |
+--------------------------+-------------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /application/mysql-5.5.49/share/charsets/ |
+--------------------------+-------------------------------------------+
8 rows in set (0.00 sec)
6.客户端字符集统一
1.客户端字符集统一
法①set names utf8
法②下面三个命令代替set names(其实就是更改了client的字符集)
SET character_set_client = gbk
SET character_set_connection = gbk
SET character_set_results = gbk
法③登录的时候指定字符集
[root@oldboy ~]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock --default-character-set=utf8;
法④通过修改my.cnf 实现修改mysl客户端的字符集,并且永久生效
[client]
default-character-set = utf8 #不需要重启服务,退出登录就生效
备注:多实例修改客户端 字符集要修改/etc/my.cnf
7.更改mysql服务端的字符集
按照要求修改my.cnf参数
[mysqld]
default-character-set = utf8 #适合5.1以及以前的版本
character-set-server = utf8 #适合5.5
8.创建库的时候指定字符集
mysql> create database oldboy CHARACTER SET gbk COLLATE gbk_chinese_ci;
说明:建表的时候指定字符集,如果不指定字符集,那么表和库的字符一样
9.程序也要统一
程序和库表的字符集统一
10.系统的字符集
[root@oldboy ~]# cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
11.数据库中执行sql语句的方法
a.sql语句在windows客户端改成utf8没有签名的格式
b.导入数据指定字符集的格式
mysql -uroot -poldboy123 --default-character-set=utf8 <test.sql
12.更改库字符集的思路(库的表里面已经有数据了)
说明:有数据的情况下,对新数据生效,对老数据库不生效 更改库字符集的思想 1.数据库不要更新,导出所有的数据 2.把导出的数据进行字符集的替换(替换表和库) 3.修改my.cnf,更改mysql客户端的服务端的字符集,重启生效 4.导入更改过的字符集的数据,包括表结构语句,提供服务 5.ssh客户端,以及程序更改为对应的字符集
如何编译安装mysql中的字符集就先给大家讲到这里,对于其它相关问题大家想要了解的可以持续关注我们的行业资讯。我们的板块内容每天都会捕捉一些行业新闻及专业知识分享给大家的。
亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。