更改MariaDB默认字符编码,解决中文乱码问题!!!

标题更改MariaDB默认字符编码,解决中文乱码问题!!!

#进入数据库控制台

mysql -uroot -p

#status;查看运行状态,以及默认字符编码

MariaDB [(none)]> status;
--------------
mysql  Ver 15.1 Distrib 5.5.44-MariaDB, for Linux (x86_64) using readline 5.1

Connection id:          21
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         5.5.44-MariaDB MariaDB Server
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 2 hours 19 min 42 sec

Threads: 1  Questions: 111  Slow queries: 0  Opens: 4  Flush tables: 2  Open tables: 29  Queries per second avg: 0.013
--------------
Server characterset: latin1

Db characterset: latin1

Client characterset: utf8

Conn. characterset: utf8

默认客户端和服务器端都用了latin1编码,所以会出现乱码。

#修改mysql配置文件

[root@localhost mnt]# vim /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

#############################添加内容
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
##########################################
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
"/etc/my.cnf" 22L, 659C written        
##############################重启服务                       
[root@localhost mnt]# systemctl restart mariadb.service 
[root@localhost mnt]# 

####################################再次进入MySQL控制台查看

MariaDB [(none)]> status;
--------------
mysql  Ver 15.1 Distrib 5.5.44-MariaDB, for Linux (x86_64) using readline 5.1

Connection id:          2
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         5.5.44-MariaDB MariaDB Server
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 16 sec

Threads: 1  Questions: 4  Slow queries: 0  Opens: 0  Flush tables: 2  Open tables: 26  Queries per second avg: 0.250
--------------

####查看MySQL字符集

show variables like 'character_set_%';
MariaDB [(none)]> 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       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

参数说明:

character_set_client:客户端请求数据的字符集。

character_set_connection:从客户端接收到数据,然后传输的字符集。

character_set_database:

默认数据库的字符集,无论默认数据库如何改变,都是这个字符集;如果没有默认数据库,

使character_set_server指定的字符集,此参数无需设置。

character_set_filesystem:

把操作系统上文件名转化成此字符集,即把character_set_client转换character_set_filesystem,默认binary即可。

character_set_results:结果集的字符集。

character_set_server:数据库服务器的默认字符集。

character_set_system:这个值总是utf8,不需要设置,存储系统元数据的字符集。

备注:

MySQL 5.5之前的版本设置办法:

在[client]段下添加

default-character-set=utf8

在[mysqld]段下添加

default-character-set=utf8

注意,如果修改后不能启动报错,把[mysqld]段下default-character-set=utf8改为character_set_server=utf8,取消[client]段的设置。

创建数据库的命令:


Create DATABASE IF NOT EXISTS mydata default charset utf8 COLLATE utf8_general_ci;

######结束

原文来自:https://www.osyunwei.com/archives/9178.html

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值