开发者学堂课程【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 目录。
言下之意 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 >
如下图所示:注意观察表格
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 )
如下图所示:注意观察表格
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%';
看看出现的结果:
注意:此时将字体换成中文,如下图所示:会出现许多“?”
因为在上述程序中出现的是拉丁文,而不是 uft8。
当出现”?”的时候,需要将它进行修改
默认的客户端和服务器都使用了 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 ;
刷新之后,下图表格中的内容正确,此时数据库程序正确。
重启以后,在字符集编码修改之前建立一个数据库其实是没用的,而在这之后建立一个数据库是可以正常使用的,如果安装一个 mysql 那么就在这个字符集编码修改完之后立即建造一个数据库。