mysql更改数据库表utf-8_修改mysql数据库为 utf-8
发布日期:2025-04-17 23:41:46 浏览次数:18 分类:精选文章

本文共 1858 字,大约阅读时间需要 6 分钟。

MySQL 的字符集和编码设置是一个容易引起问题但也很重要的配置问题。作为一个从 Oracle 转向 MySQL 的新手,我在这个过程中遇到了一些挑战,希望能通过自己的学习和实践总结出一些实用的解决方案。

一、配置文件修改

MySQL 的配置文件在不同操作系统下有不同的位置。例如,Windows 系统下通常位于系统目录或 MySQL 安装目录下,文件名为 my.ini;Linux 下则一般位于 /etc/my.cnf。

在 [mysqld] 标签下添加以下三行:

default-character-set = utf8character_set_server = utf8lower_case_table_names = 1

在 [mysql] 标签下添加:

default-character-set = utf8

在 [mysql.server] 标签下添加:

default-character-set = utf8

在 [mysqld_safe] 标签下添加:

default-character-set = utf8

在 [client] 标签下添加:

default-character-set = utf8

二、重新启动 MySQL 服务

在 Windows 系统上,可以通过服务管理器重启服务。命令行下使用:

net stop mysqlnet start mysql

Linux 用户可以使用:

service mysql restart

如果启动失败,请检查配置文件是否有误。

三、查看设置结果

登录命令行客户端:

mysql -uroot -p

输入密码后执行:

SHOW VARIABLES LIKE "%char%";

期望看到类似以下结果:

| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | utf8 || character_set_results | utf8 || character_set_server | utf8 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql/charsets/ |

四、创建数据库和导入数据

在创建数据库时,确保设置为 UTF-8 编码:

create database name default character set utf8;

创建表时,指定字符集:

CREATE TABLE `type` (    `id` int(10) unsigned NOT NULL auto_increment,    `flag_deleted` enum('Y','N') character set utf8 NOT NULL default 'N',    `flag_type` int(5) NOT NULL default '0',    `type_name` varchar(50) character set utf8 NOT NULL default '',    PRIMARY KEY (`id`)) DEFAULT CHARSET=utf8;

修改现有数据库:

alter database name character set utf8;

修改表默认字符集:

alter table type character set utf8;

修改字段字符集:

alter table type modify type_name varchar(50) CHARACTER SET utf8;

五、替代方法(如无法修改配置文件)

  • 创建数据库时设置 UTF-8:
  • create database `test` default character set utf8;
    1. 导入 SQL 脚本时,确保文件为 UTF-8 编码。登录 MySQL 命令行后执行:
    2. use test;set names utf8;source test.sql;
      1. 连接字符串示例:
      2. jdbc:mysql://127.0.1:3306/test?useUnicode=true&characterEncoding=utf-8

        通过以上方法,可以有效解决 MySQL 编码问题。遇到具体问题时,可以参考上述步骤或查阅 MySQL 官方文档。

    上一篇:mysql更改表引擎INNODB为MyISAM的方法总结
    下一篇:MySQL是如何做容器测试的?

    发表评论

    最新留言

    做的很好,不错不错
    [***.243.131.199]2026年06月08日 07时53分59秒