修改字符集|学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 快速学习修改字符集

开发者学堂课程【MySQL 高级应用 - 索引和锁修改字符集】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/598/detail/8583


修改字符集


基本内容

一、修改配置文件

二、数据库的操作方法


一、修改配置文件

了解了 myql 的备份和高效之后,在学习 register.cnf 的时候,默认出厂的一般情况下不动,需要单独拷贝一份,配置文件为了防止程序错乱?

最好拷贝出来一份,原厂默认出厂设置不动,mysql 也同样采取类似的思路

修改默认的配置文件,注意,此时需要分一下版本,当前所用版本5.5,首先创建一个目录结构,

注意:cp/usr/share/mysql/,在当前目录下,这里存在一个 my-huge.cnf 文件,

它作为 mysql 的配置文件,它是一个总控的文件,一般而言,所说的服务器的调优等有可能会跟这个文件的部分参数息息相关。有点儿像配一个 web 工程的 XML,要用 spring mvc 的时候需要在里面进行注册。

此时拷贝当前目录下的 cp my-huge.cnf etc 下面的 my.cnf 目录。

image.png

言下之意 etc 是所有系统启动配置文件时统一计算的,也就是说当前目录下的出厂默认的不动,留存备份,使用拷贝的文件。

5.5是当前学习的版本,如果以后升级了,它可能就不叫这个名字了,可能要找的是什么?

答:要找一个 my-default.cnf 的程序。

此时重新启动 mysql

[ root@atguigu mysql]# service mysql stop

Shutting down MySQL.

[ root@atguigu mysql]# service mysql start

Starting MySQL...

[ root@atguigu mysql]#

根据配置重新进入:

[root@atguigu mysql]# mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with or\g.

Your MySQL connection id is 1

Server version: 5.5.48 - log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners .

Type 'help;' or '\h' for help. Type '\c' to clear the currentinput statement

mysql >

mysql> show databases ;

Database

information_ schema

mysql

performance_ schema

test

4 rows in set (0.00 sec )      

此时的这四条是系统自带的

mysql> create database db01 ;

Query OK, 1 row affected (0.03 sec )

mysql> use 01;

此时自行创建了01库

Database  changed

mysql >

如下图所示:注意观察表格

image.png

mysql> show tables;

Empty set (0.00 sec )

创建空的文件夹

mysql> create table user(id int not null ,name varchar(20) ); Query OK, 0 rows affected (0.00 sec )mysql> show tables

表格创建超过

Tables_ in_db01

user

1 row in set (0.00 sec )  

使用表格

mysql> insert into user values(l, " z3' );  张三

Query OK, 1 row affected (0.00 sec )

如下图所示:注意观察表格

image.png

mysql> select * from user ; 测试库是否合格

id name

l z3

1 row in set (0.00 sec )

mysql>


二、数据库的操作方法

此处接上述程序;

1、查看字符集

show variables like 'character%';

show variables like '%char%';

看看出现的结果:

注意:此时将字体换成中文,如下图所示:会出现许多“?”

image.png

因为在上述程序中出现的是拉丁文,而不是 uft8

当出现的时候,需要将它进行修改

image.png

默认的客户端和服务器都使用了 Latin1,所以会乱码。

2、修改

[client]

password = 123456

port= 3306

default-character-set=utf8

[mysqld]

port = 3306

character_ set_ server=utf8

character_ set_ client=utf8

collation-servers=utf8_general_ ci#

(注意 linux mysql 安装完后是默认:表名区分大小写,列名不区分大小写; 0: 区分大小写,1:不区分大小写)

lower_ case_ table_ names=1#

(没置最大连接数,默人カ151, MySQL 服务器允许的最大连接数16384; )

max_ connections-1000

[mysql]

default-character-set = utf8

根据上面的方法进行修改和设置

[client]

#password = your_ password

port = 3306

socket = /var/lib/mysql/mysql. sock default- character-set=utf8

# The MySQL server

[mysqld]

port = 3306

character_ set_ server=utf8

character_ set_ client=utf8

collation-server=utf8_ general_ ci

socket = /var/lib/mysql/mysql sock

skip-external-locking

key_ buffer_ size = 384M

max_ allowed_ packet = 1M

table_ open_ cache = 512

sort_ buffer_ size = 2M

read_ buffer_ size = 2M

read_ rnd_ buffer_ size = 8M

myisam_ sort_ buffer_ size = 64M

thread_ cache_ size= 8

query_ cache_ size = 32M

Try number of CPU's*2 for thread_ concurrency

thread_ concurrency= 8

[mysql]

no-auto-rehash

default-character-set=utf8

3、在配置文件处修改

Examp1e MySQL config file for very large systems .

This is for a large system with memory of 1G- -2G where the system runs mainly MySQL.

MySQL programs look for option files in a set of

locations which depend on the deployment p1atform.

You can copy this option file to one of those

locations. For information about these locations, see :

http://dev .mysql. com/doc /mysql/en/option-files .html

In this file, you can use all long options that a program supports .

If you want to know which options a program supports, run the program

with the"--help" option.

The following options will be passed to all MySQL clients

[client ]

password = your_ password

port = 3306

socket = /var/lib/mysql/mysql .sock

default-character-set = utf8

此处的文件必须拷贝

Here follows entries for some specific programs

The MySQL server

编辑完之后,如何保存退出?

操作方法:wq

4、配置完成以后,尝试重启一下数据库

[ root@atguigu mysql]# service mysql stop

Shutting down MySQL.

[ root@atguigu mysql]# service mysql start

Starting MySQL...

[ root@atguigu etc]# mysql -u root -p

Enter password :

Welcome to the MySQL monitor .Commands end with ; or\ g .

Your MySQL connection id is 1

Server version: 5.5.48-1og MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Orac1e and/or its affi1iates. All rights reserved .

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners .

Type 'help;' or' h ,for help. Type" c' to clear the current input statement .

mysql>

重启成功说明配置文件修改正确;

mysql> use db01

Database changed

mysql> select * from user ;

测试库是否合格

id name

l z3

2 row in set (0.00 sec )

回车之后“?”更多。

此时进行分析:

如果配置文件出现错误,数据库绝对不会成功启动,此时说明配置文件没有出现问题;

在修改中文配置之前建立了一个数据库,此时尝试再建一个数据库,创建完数据库之后立即使用,不同的数据库可以使用同一张表,直接将张三改为01

mysql > create database db02

Query OK, 1 row affected (0.00 sec )

mysql> use db02;

Database changed

mysql> create table user(id int not null ,name varchar(20) );Query OK, 0 rows affected (0.01 sec )

mysql> select* from user ;

Empty set (0.00 sec )

mysql> insert into user values(1,'张三' );

Query OK, 1 row affected (0.00 sec )

mysql> select* from user ;

刷新之后,下图表格中的内容正确,此时数据库程序正确。

image.png

重启以后,在字符集编码修改之前建立一个数据库其实是没用的,而在这之后建立一个数据库是可以正常使用的,如果安装一个 mysql 那么就在这个字符集编码修改完之后立即建造一个数据库。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8月前
|
数据处理
自定义字符集
自定义字符集
126 2
|
8月前
|
存储 关系型数据库 MySQL
【2024】新建mysql数据库,如何选择字符集和排序规则
【2024】新建mysql数据库,如何选择字符集和排序规则
850 1
|
SQL Oracle 关系型数据库
修改oracle数据库字符集
修改oracle数据库字符集
|
关系型数据库 MySQL 数据库
【MySQL数据库】字符集与校对集
MySQL中提供了许多校对集,用于为不同字符集指定比较和排序规则。校对集的名称由“_”分隔的3部分组成,开头是对应的字符集,中间是国家名或general,结尾是ci、cs或bin。ci表示不区分大小写,cs表示区分大小写,bin表示以二进制方式比较。
|
关系型数据库 MySQL 数据库
MySQL的字符集和校对规则(Collation)解析器是干什么的?底层原理是什么?
MySQL的字符集和校对规则(Collation)解析器是干什么的?底层原理是什么?
110 0
|
关系型数据库 MySQL
mysql通过my.cnf修改默认字符集为utf-8的方法和注意事项
mysql通过my.cnf修改默认字符集为utf-8的方法和注意事项
|
数据库
数据库写入中文乱码问题 编码latin1解决方法
数据库写入中文乱码问题 编码latin1解决方法
176 0
|
关系型数据库 MySQL 数据库
|
MySQL 关系型数据库 Linux