博客
关于我
mysql更改数据库表utf-8_修改mysql数据库为 utf-8
阅读量:789 次
发布时间:2023-02-12

本文共 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 官方文档。

    转载地址:http://indfk.baihongyu.com/

    你可能感兴趣的文章
    Mysql报错Packet for query is too large问题解决
    查看>>
    mysql报错级别_更改MySQL日志错误级别记录非法登陆(Access denied)
    查看>>
    Mysql报错:too many connections
    查看>>
    MySQL报错:无法启动MySQL服务
    查看>>
    mysql授权用户,创建用户名密码,授权单个数据库,授权多个数据库
    查看>>
    mysql排序查询
    查看>>
    MySQL排序的艺术:你真的懂 Order By吗?
    查看>>
    MySQL排序的艺术:你真的懂 Order By吗?
    查看>>
    Mysql推荐书籍
    查看>>
    Mysql插入数据从指定选项中随机选择、插入时间从指定范围随机生成、Navicat使用存储过程模拟插入测试数据
    查看>>
    MYSQL搜索引擎
    查看>>
    mysql操作数据表的命令_MySQL数据表操作命令
    查看>>
    mysql操作日志记录查询_如何使用SpringBoot AOP 记录操作日志、异常日志?
    查看>>
    MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?
    查看>>
    mysql支持表情
    查看>>
    MySQL支撑百万级流量高并发的网站部署详解
    查看>>
    MySQL改动rootpassword的多种方法
    查看>>
    mysql数据分组索引_MYSQL之索引配置方法分类
    查看>>
    mysql数据取差,mysql屏蔽主外键关联关系
    查看>>
    MySQL数据和Redis缓存一致性方案详解
    查看>>