mysql用sql语句创建表和数据库怎么设置字符编码'

mysql用sql语句创建表和数据库怎么设置字符编码',第1张

-- 创建数据时,设置数据库的编码方式 

-- CHARACTER SET:指定数据库采用的字符集,utf8不能写成utf-8

-- COLLATE:指定数据库字符集的排序规则,utf8的默认排序规则为utf8_general_ci(通过show character set查看)

drop database if EXISTS dbtest;

create database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;-- 修改数据库编码

alter database dbtest CHARACTER SET GBK COLLATE gbk_chinese_ci;

alter database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;-- 创建表时,设置表、字段编码

use dbtest;

drop table if exists tbtest;

create table tbtest(

id int(10) auto_increment,

user_name varchar(60) CHARACTER SET GBK COLLATE gbk_chinese_ci,

email varchar(60),

PRIMARY key(id)

)CHARACTER SET utf8 COLLATE utf8_general_ci;-- 修改表编码

alter table tbtest character set utf8 COLLATE utf8_general_ci;

-- 修改字段编码

ALTER TABLE tbtest MODIFY email VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_general_ci;-- 查看所有的字符编码

  SHOW CHARACTER SET;

-- 查看创建数据库的指令并查看数据库使用的编码

    show create database dbtest;-- 查看数据库编码:

   show variables like '%char%';-- 设置character_set_server、set character_set_client和set character_set_resultsset character_set_server = utf8; -- 服务器的默认字符集。使用这个语句可以修改成功,但重启服务后会失效。根本的办法是修改配置MYSQL文件MYINI,

你要是用一个可视化 *** 作的界面就简单了,就比如navicat

for

mysql右键数据库-->数据库属性--->字符集--->utf-8

unicode

/排序规则--->utf8-gernal-ci就行了

解决方式

在导出mysql sql执行文件的时候,指定一下编码格式:

复制代码代码如下:

mysqldump -uroot -p --default-character-set=utf8 mo(dbname) > E://xxxxsql

导入的时候OK了

执行如下

复制代码代码如下:

mysql -u root -p --default-character-set=utf8

use dbname

source /root/newsdatasql

sql server 2000的unicode编码有特殊性,仅仅在rails中使用utf8编码,和把全部rails项目文件格式改成utf8之外,还是不够的。仅仅这样做,只是部分中文字符能够正确处理,而且存入sql server2000中的中文数据,也完全是乱码。正确的配置方法应该如下。

1 ms sql server2000中数据字段全部要选择成n打头的类型,比如ntext,nvarchar等。

2安装ADO Driver

安装one -click installer 来安装ruby 的话就已经安装了所有连接SQL Server使用的需求包但是,并没有安装ADO Driver

这样来安装它:

在Ruby目录下找到这个目录: \ruby\lib\ruby\site_ruby\18\DBD 例如:我的Ruby安装在D:\ruby中,所以是这个目录D:\ruby\lib\ruby\site_ruby\18\DBD 在该目录中创建一个ADO文件夹 下载Ruby-DBI,将lib/dbd_ado/ADOrb文件拷贝到X:/ruby/lib/ruby/site_ruby/18/DBD/ADO/ADOrb

3 配置databaseyml:Java代码

development:

adapter: sqlserver

database: database_name

host: server_name

username: user_name

password: your_pw_here

development:

adapter: sqlserver

database: database_name

host: server_name

username: user_name

password: your_pw_here

4在environmentrb添加下面代码

require 'win32ole'

WIN32OLEcodepage = WIN32OLE::CP_UTF8

在这里稍微解释下第四部分的设置。sql server 2000中使用的unicode 并非是utf8,ado的默认链接编码都是当前系统设置的code pages相关的。

一般的windows设置都是非unicode的,比如简体中文windows系统下一般都是gb2312, 在rails中databaseyml设置encoding: utf8,对于sql server没有任何用处。

为了迫使sql server接受utf8数据,必须修改ado链接的code pages值为utf8,才能让ado部分代码在接受rails传入的utf8数据之后,不做任何额外的处理 否则的话,ado部分代码会根据当前系统的默认code pages值来处理这里字符数据。

于是在中文windows系统上,从utf8的rails项目中传入的数据,会被当作gb2312编码的数据来传递到sql server2000中,于是sql server2000中存入的数据会成为乱码,也有部分数据在处理过程中出错,导致sql 语句执行出错。比如常见的中文字符右边的单引号会不见的情况。

不设置 WIN32OLEcodepage = WIN32OLE::CP_UTF8,你的整个系统编码配置是这样的

rails(utf8)<-->ado(根据当前系统cp来取得编码,或是gb2312或是其他)<-->sql server 2000 (unicode)

整个系统编码不一至 。

WIN32OLEcodepage = WIN32OLE::CP_UTF8 这句代码就是为了更改cp值整个系统编码配置是这样的

rails(utf8)<-->ado(utf8)<-->sql server 2000 (unicode)

整个系统编码一至,整个系统中不会再出现任何乱码。

1去mysql下找到文件myini配置文件用记事本打开,找到 default-character-set=latin1,character-set-server=latin1;将latin1改为utf-8或者gbk,修改完之后保存。

2我的电脑右击 “管理”进入之后选择“服务和应用程序”下的“服务”,找到“mysql”之后右击选择“重新启动”。

您好,很高兴为您解答。

utf8编码可以支持一到4字节的字符编码,在mysql用我们一般使用utf8编码来处理字符类型,通常情况下都没有问题,但遇到4字节编码的字符,在数据存取的时候就会有问题了。

通常我们可能会得到一个错误或者警告:Incorrect

string

value:

'/xF0/x9D/x8C/x86'

for

column

Mysql

从553版本开始支持4字节的utf8编码,如果你的Mysql数据库是553+,按照以下步骤就能解决这个问题,如果版本低于553,是不是可以考虑升级数据库版本呢?

1、在修改数据库编码前先对数据库备份(虽然utf8mb4兼容utf8,但有备无患)

2、修改数据库的编码、表的编码、列的编码为utf8mb4

3、在Mysql数据库配置文件(myini)中加入如下设置

[client]default-character-set

=

utf8mb4[mysql]default-character-set

=

utf8mb4[mysqld]character-set-client-handshake

=

FALSEcharacter-set-server

=

utf8mb4collation-server

=

utf8mb4_unicode_ci

重新启动Mysql数据库,确认设置生效

mysql>

show

VARIABLES

like

'%char%';+--------------------------+----------------------------------------+|

Variable_name

|

Value

|+--------------------------+----------------------------------------+|

character_set_client

|

utf8

||

character_set_connection

|

utf8

||

character_set_database

|

utf8mb4

||

character_set_filesystem

|

binary

||

character_set_results

|

utf8

||

character_set_server

|

utf8mb4

||

character_set_system

|

utf8

||

character_sets_dir

|

/home/app/mysql-5533/share/charsets/

|+--------------------------+----------------------------------------+8

rows

in

set

4、在获取数据库连接的时候执行sql:set

names

utf8mb4;我使用的是alibaba的开源数据库连接池程序,在配置文件中增加一行如下配置

<property

name="connectionInitSqls"

value="set

names

utf8mb4;"

/>

重新启动应用程序,问题解决

如若满意,请点击右侧采纳答案,如若还有问题,请点击追问

希望我的回答对您有所帮助,望采纳!

~

O(∩_∩)O~

以上就是关于mysql用sql语句创建表和数据库怎么设置字符编码'全部的内容,包括:mysql用sql语句创建表和数据库怎么设置字符编码'、如何设置mysql数据库为utf-8编码、mysql数据库怎样设置中文编码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9399356.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存