设置MySQL的字符编码

前提
首先需要你在安装mysql的时候安装上不同的编码方式,这样你才可以自由切换不同的编码方式,不然执行set character_set_database=gbk的时候是会报错的。
以mysql5.1.73为例讲解下原码编译的过程
1. 安装过程
tar -xzvf mysql-5.1.73.tar.gz
cd mysql-5.1.73
./configure –prefix=/usr/local/mysql –datadir=/videodata/mysqldata/data –with-extra-charsets=all –with-charset=utf8 –with-plugins=max
Mysql需要安装innodb存储引擎和GBK字符集,所以–with-extra-charsets=all和–with-plugins=max参数一定要有。

–prefix=PREFIX:指定程序安装路径
–datadir=:指定数据存储路径
–loc
–with-charset=CHARSET:指定字符集;
–with-extra-charsets=CHARSET,CHARSET,…:指定附加的字符集
–with-plugins=PLUGIN,PLUGIN 等等等(MySQL服务器端支持的存储引擎组件(默认为空),可选值较多
Make
Make install
2. 初始化数据库mysql_install_db –user=mysql
3. 增加账户useradd -s /sbin/nologin mysql
4. 拷贝启动脚本 cp support-files/mysql.server /etc/init.d/mysqld
5. 修改权限,并设置开机启动。
chmod 755 /etc/init.d/mysqld
chkconfig –add mysqld
chkconfig mysqld on
6. 启动mysql服务 /etc/init.d/mysqld start
7、修改root密码
mysql> SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘newpass’);

前言
  这里我已经将MySQL的数据库编码设置为UTF-8,所以下面现实的都是UTF-8。

  设置MySQL数据库的编码方式有三种,分别是基于session会话的、基于全局gloable的、永久性改变的。

正文
1.首先连接到MySQL : mysql -uroot -proot

2.输入\s,即可查看数据库的字符编码

3.查看数据库的详细编码

  输入:show variables like ‘%char%’;

4.新建一个数据库查看数据库编码

  create database test1;

  show create database test1;

5.设置当前窗口的数据库字符编码,即使基于会话session级别的,关闭此窗口,重新打开另外的窗口操作数据库依然是原来的字符编码

  这里将utf-8设置为gbk:

  set character_set_database=gbk;

  set character_set_server=gbk;

  show variables like ‘%char%’;

  我们发现database和server都变成了gbk,然后我们再重新创建一个数据库,查看其编码,

  create dabase test2;

  show create dabase test2;

  我们发现数据库编码已经变为gbk了。

  但是我们将此窗口关闭后,重新打开一个新的窗口来连接数据库,重新查看数据库的编码,发现不是我们刚刚修改的gbk了,还是原来的utf-8。如图:

  因为是基于会话级别的改变编码的方式,当重新新建一个窗口连接的时候,会话已经改变,所以变为了原来的字符编码。

6.设置全局的数据库字符编码,即使基于整个MySQL服务的,当重启MySQL服务的时候,编码依然会变为原来的字符编码

  set global character_set_database=gbk;

  set global character_ser_server=gbk;

  show variables like ‘%char%’;

  我们发现数据库的编码没有修改成功,还是原来的utf-8。但是当我们重新创建数据库或者重新创建表的时候,编码就会是我们所期望的gbk了。

  在本窗口的新建数据库是肯定可以的,session级别的都可以,全局的肯定ok的。重点是在另一个窗口中的编码现实的是什么,下面我们复制一个窗口,新建数据库,来查看数据库和表的编码

  create database test3;

  show variables like ‘%char%’;

  我们发现这是没有问题的。

  但是我们重启MySQL数据库的时候,编码又是回复为原来的utf-8了。

7.设置永久的字符编码,即需要在配置文件中修改数据库的字符编码

  编辑 /etc/my.cnf,

  在里面加入,已经有[XXX]的,在里面直接加入即可。

    [mysqld]

    character-set-server=utf8

    [client]

    default-character-set=utf8

    [mysql]

    default-character-set=utf8

  然后重启数据库即可,service mysql restart.

https://www.cnblogs.com/xbq8080/p/6572133.html
https://www.cnblogs.com/geaozhang/p/6724393.htmlutm_source=itdadao&utm_medium=referral

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值