如何编译安装mysql中的字符集
admin
2023-06-08 21:21:34
0

本文主要给大家简单讲讲如何编译安装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数据库常见的字符集介绍

如何编译安装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 

12.更改库字符集的思路(库的表里面已经有数据了)

说明:有数据的情况下,对新数据生效,对老数据库不生效
更改库字符集的思想
1.数据库不要更新,导出所有的数据
2.把导出的数据进行字符集的替换(替换表和库)
3.修改my.cnf,更改mysql客户端的服务端的字符集,重启生效
4.导入更改过的字符集的数据,包括表结构语句,提供服务
5.ssh客户端,以及程序更改为对应的字符集

如何编译安装mysql中的字符集就先给大家讲到这里,对于其它相关问题大家想要了解的可以持续关注我们的行业资讯。我们的板块内容每天都会捕捉一些行业新闻及专业知识分享给大家的。

相关内容

热门资讯

伊朗总统准备向世界保证不寻求核... 伊朗总统佩泽希齐扬5月24日在接受采访时表示,“伊朗准备向全世界保证,正如已故伊朗最高领袖阿里·哈梅...
火星上出现一摞整齐叠放的石头,... 那是谁干的? 毅力号火星车在火星上发现了一摞整齐叠放的石头。NASA / JPL-Caltech ...
八国发表联合声明,谴责以色列国... △以色列国家安全部长伊塔马尔·本-格维尔(资料图)当地时间24日,阿联酋、约旦、土耳其、埃及、印度尼...
神舟二十三号载人飞船发射升空 IT之家 5 月 24 日消息,刚刚,搭载神舟二十三号载人飞船的长征二号 F 遥二十三运载火箭在酒泉...
浙江上线“创新积分制”数智平台 来源:中国新闻网 中新网杭州5月24日电(鲍梦妮)5月24日,在2026年浙江省“全国科技活动周”上...
国内知名冷门绝学大咖齐聚深圳,... 本文转自【光明日报】; 5月22日上午,作为2026文化强国建设高峰论坛重要组成部分,首届冷门绝学传...
神舟二十三号载人飞行任务航天员... 据微信公众号“中国载人航天”消息,5月24日20时16分,神舟二十三号载人飞行任务航天员乘组出征仪式...
以总理:同特朗普一致认为须消除... 新华社耶路撒冷5月24日电(记者庞昕熠 王卓伦)以色列总理内塔尼亚胡24日在社交平台发文称,他和美国...
专家解读|秉持以人为本 统筹发... 随着大模型、生成式人工智能、智能体等技术的迭代创新,人工智能正在进入加速应用的新阶段,由此引发的社会...
原创 v... vivo在5月份的新机继续增加,比如vivo S60系列、vivo Y600 Turbo等,均在5月...