mysql命令行修改字符编码

本文详细介绍了如何修改、创建及查看MySQL数据库字符编码,并指导如何通过配置文件my.cnf进行全局字符编码设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、修改数据库字符编码

mysql> alter database mydb character set utf8 ;

2、创建数据库时,指定数据库的字符编码

mysql> create database mydb character set utf8 ;

3、查看mysql数据库的字符编码

mysql> show variables like 'character%'; //查询当前mysql数据库的所有属性的字符编码

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

4、修改mysql数据库的字符编码

修改字符编码必须要修改mysql的配置文件my.cnf,然后重启才能生效

通常需要修改my.cnf的如下几个地方:

【client】下面,加上default-character-set=utf8,或者character_set_client=utf8

mysqld】下面,加上character_set_server = utf8 ;

因为以上配置,mysql默认是latin1,如果仅仅是通过命令行客户端,mysql重启之后就不起作用了。

如下是客户端命令行修改方式,不推荐使用

mysql> set character_set_client=utf8 ;

mysql> set character_set_connection=utf8 ;

mysql> set character_set_database=utf8 ;

mysql> set character_set_database=utf8 ;

mysql> set character_set_results=utf8 ;

mysql> set character_set_server=utf8 ;

mysql> set character_set_system=utf8 ;

mysql> show variables like 'character%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

转载地址:点击打开链接

### 修改 MySQL 字符集的方法 为了通过命令行更改 MySQL 的默认字符集,可以按照以下方法操作: #### 方法一:临时设置会话或全局变量 可以通过执行 SQL 命令来动态改变当前连接(即会话级别)或是整个服务器(即全局级别)的字符编码。 对于单一会话而言: ```sql SET NAMES 'utf8mb4'; ``` 如果希望影响所有新建立的连接,则需更新全局配置: ```sql SET GLOBAL character_set_server = 'utf8mb4'; SET GLOBAL collation_server = 'utf8mb4_unicode_ci'; ``` 需要注意的是,在某些情况下仅调整这些参数可能不足以完全解决问题;还需要考虑表结构以及列级别的字符集定义[^1]。 #### 方法二:永久修改配置文件并重启服务 更持久的方式是在 `/etc/my.cnf` 或者其他位置对应的 MySQL 配置文件中加入如下几行内容以确保每次启动时都应用指定的字符集设定: ```ini [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' skip-character-set-client-handshake ``` 保存上述改动之后记得要重新加载 MySQL 服务以便使新的设置生效。然而正如遇到的情况那样,错误地编辑此文件可能会阻止数据库正常运行。因此建议先备份原始版本再做任何变更尝试,并仔细核对官方文档中的指导说明[^2]。 另外值得注意的一点是,当涉及到从旧版 UTF-8 向 `utf8mb4` 迁移时,除了简单的配置变动外还应该考虑到数据迁移方面的工作,这通常涉及到了具体的应用场景和技术细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值