2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > MySQL查看与修改编码方式(mysql 数据库 表)

MySQL查看与修改编码方式(mysql 数据库 表)

时间:2022-06-03 02:24:09

相关推荐

MySQL查看与修改编码方式(mysql 数据库 表)

mysql默认的编码方式是latin1,通过以下命令查看

show variables like 'char%';

或者:

show variables like 'character%';

mysql> show variables like "character%";

+--------------------------+----------------------------+

| Variable_name| Value |

+--------------------------+----------------------------+

| character_set_client |latin1 |

| character_set_connection | latin1 |

| character_set_database | latin1 |

| character_set_filesystem | binary |

| character_set_results | latin1 |

| character_set_server | latin1 |

| character_set_system |latin1 |

| character_sets_dir | /opt/lampp/share/charsets/ |

+--------------------------+----------------------------+

从以上信息可知数据库的编码为latin1,需要修改为gbk或者是utf8;

其中,character_set_client为客户端编码方式;

character_set_connection为建立连接使用的编码;

character_set_database数据库的编码;

character_set_results结果集的编码;

character_set_server数据库服务器的编码;

修改mysql默认编码方式:

修改mysql的配置文件my.ini,该文件目录一般为/etc/my.ini

找到客户端配置[client]在下面添加

default-character-set=utf8默认字符集为utf8

在找到[mysqld]添加

default-character-set=utf8默认字符集为utf8

init_connect='SET NAMES utf8'(设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)

修改后大致如下:

[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockdefault-character-set=utf8init_connect='SET NAMES utf8'character_set_server=utf8user=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid[client]default-character-set=utf8

修改好后,重新启动mysql即可,重新查询数据库编码可发现编码方式的改变:

show variables like 'char%';

mysql> show variables like 'char%';

+--------------------------+----------------------------+

| 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数据库编码方式:

show create database mydatabase;

show create database redmine;

+----------+------------------------------------------------------------------+

| Database | Create Database|

+----------+------------------------------------------------------------------+

| redmine | CREATE DATABASE `redmine` /*!40100 DEFAULT CHARACTER SET latin1 */ |

+----------+------------------------------------------------------------------+

从以上看出数据库的默认编码方式为latin1

修改mysql数据库编码方式:

alter database mydatabase character set utf8;

show create database redmine;

+----------+------------------------------------------------------------------+

| Database | Create Database|

+----------+------------------------------------------------------------------+

| redmine | CREATE DATABASE `redmine` /*!40100 DEFAULT CHARACTER SET utf8 */ |

+----------+------------------------------------------------------------------+

可以看到数据库的编码方式变为了utf8

查看mysql数据表编码方式

show create table mydatabase;

| projects | CREATE TABLE `projects` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(255) NOT NULL DEFAULT '',

`description` text,

`homepage` varchar(255) DEFAULT '',

`is_public` tinyint(1) NOT NULL DEFAULT '1',

`parent_id` int(11) DEFAULT NULL,

`created_on` datetime DEFAULT NULL,

`updated_on` datetime DEFAULT NULL,

`identifier` varchar(255) DEFAULT NULL,

`status` int(11) NOT NULL DEFAULT '1',

`lft` int(11) DEFAULT NULL,

`rgt` int(11) DEFAULT NULL,

`inherit_members` tinyint(1) NOT NULL DEFAULT '0',

PRIMARY KEY (`id`),

KEY `index_projects_on_lft` (`lft`),

KEY `index_projects_on_rgt` (`rgt`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 |

可以看到projects表的编码方式为latin1

修改mysql数据表编码方式

alter table projects convert to character set utf8 collate utf8_general_ci;

以上projects为我要查看的表

| projects | CREATE TABLE `projects` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(255) NOT NULL DEFAULT '',

`description` text,

`homepage` varchar(255) DEFAULT '',

`is_public` tinyint(1) NOT NULL DEFAULT '1',

`parent_id` int(11) DEFAULT NULL,

`created_on` datetime DEFAULT NULL,

`updated_on` datetime DEFAULT NULL,

`identifier` varchar(255) DEFAULT NULL,

`status` int(11) NOT NULL DEFAULT '1',

`lft` int(11) DEFAULT NULL,

`rgt` int(11) DEFAULT NULL,

`inherit_members` tinyint(1) NOT NULL DEFAULT '0',

PRIMARY KEY (`id`),

KEY `index_projects_on_lft` (`lft`),

KEY `index_projects_on_rgt` (`rgt`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 |

此时projects表的编码方式已经变为utf8

参考地址:

/frinder/article/details/7041723

/db/18042.html

/topics/390728070?page=1

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。