金沙棋牌app手机下载

当前位置:金沙棋牌 > 金沙棋牌app手机下载 > mysql使用中遇到的问题,免安装版或zip版

mysql使用中遇到的问题,免安装版或zip版

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-12-09 06:09

问题一:

彻底解决mysql中文乱码的办法,修改mysql解压缩版(免安装版或zip版)字符编码

MySQL会出现中文乱码的原因不外乎下列几点:

 

1.server本身设定问题,例如server字符编码还停留在latin1

 

2.table的语系设定问题(包含character与collation)

 

3.客户端程式(例如php)的连线语系设定问题

 

强烈建议使用utf8!!!!

 

utf8可以兼容世界上所有字符!!!!

 


 

一、windows下Mysql插入中文显示乱码解决方案:对于mysql解压缩版(免安装版或zip版)进行设置字符编码

 

1、

 

当我们把zip文件格式解压到指定目录后,并且完成基本环境配置后,打开mysql

第一次mysql启动服务失败,未返回报错信息

5.6.24会发现名为【my-default.ini】的文件。我们用记事本打开该文件会发现并没有【default-character-set

xxx】或者【character_set_server=xxx】,怎么回事呢?网上给出的许多方法都是直接修改这句话的xxx为utf8,不急,下面请看第二步:

 

2、

 

复制该文件,并且命名为【my.ini】,这样根目录下就有两个.ini文件了,一个是my-default.ini,一个是my.ini 。接下来我们只需修改my.ini里面的内容就行了。请看第三步:

 

3、

 

修改【my.ini】,

 

在[mysqld]下面添加 character_set_server=utf8,注意是【utf8】不是【utf-8】而且后面没有任何标点符号;

 

在【sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES】这句话后面再添加三行:

 

[client]

port=3306

default-character-set=utf8

 

4、

 

经过以上三步就ok了。保存后重启服务器,登陆后在命令行输入:【show variables like 'char%';】可查看默认字符集如下图所示:

图片 1

5、

 

我的【my.ini】代码,红色代码区为修改之处:

 

# For advice on how to change settings please see

#

# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the

# *** default location during install, and will be replaced if you

# *** upgrade to a newer version of MySQL.

 

[mysqld]

 

# Remove leading # and set to the amount of RAM for the most important data

# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.

# innodb_buffer_pool_size = 128M

 

# Remove leading # to turn on a very important data integrity option: logging

# changes to the binary log between backups.

# log_bin

 

# These are commonly set, remove the # and set as required.

basedir = D:mysql-5.6.24-winx64

datadir = D:mysql-5.6.24-winx64data

port = 3306

# server_id = .....

character_set_server=utf8

 

# Remove leading # to set options mainly useful for reporting servers.

# The server defaults are faster for transactions and fast SELECTs.

# Adjust sizes as needed, experiment to find the optimal values.

# join_buffer_size = 128M

# sort_buffer_size = 2M

# read_rnd_buffer_size = 2M

 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

 

[client]

port=3306

default-character-set=utf8

 

二、LInux下Mysql插入中文显示乱码解决方案

 

mysql -uroot -p 回车输入密码

 

进入mysql查看状态如下:

图片 2

mysql不能插入中文

 

默认的是客户端和服务器都用了latin1,所以会乱码。

 

解决方案:直接修改默认的Mysql配置文件彻底解决mysql无法插入中文和中文乱码的办法

 

一、进入mysql(mysql -uroot -p),查看当前数据库字符集(status;)

 

二、查看当前系统版本(lsb_release -a)

图片 3

Mysql不能插入中文

 

三、#vim /etc/mysql/my.cnf 。(5.5以前系统)在【client】下面加入 default-character-set=utf8

 

在【mysqld】下面加入default-character-set=utf8

 

Notice:注意 如果修改后不能启动报错试试把default-character-set=utf8改为character_set_server=utf8,仅仅加入到mysqld下面的.client就不需要加了

 

四、#vim /etc/mysql/my.cnf 。(5.5以后系统)如下修改:

 

[client]

default-character-set=utf8

 

[mysqld]

default-storage-engine=INNODB

character-set-server=utf8

collation-server=utf8_general_ci

 

五、重启mysql(/etc/init.d/mysql stop   /etc/init.d/mysql  start)

 

六、修成成功,进入mysql查看字符集(mysql>show variables like ‘character_set_%’;)

图片 4

Mysql无法插入中文

 

三、避免创建数据库及表出现中文乱码和查看编码方法

 

1、创建数据库的时候:CREATE DATABASE `test`

CHARACTER SET 'utf8'

COLLATE 'utf8_general_ci';

     2、建表的时候 CREATE TABLE `database_user` (

`ID` varchar(40) NOT NULL default '',

`UserID` varchar(40) NOT NULL default '',

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

这3个设置好了,基本就不会出问题了,即建库和建表时都使用相同的编码格式。

 

但是如果你已经建了库和表可以通过以下方式进行查询。

 

1.查看默认的编码格式:

mysql> show variables like "%char%";

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

| Variable_name | Value |

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

| character_set_client | gbk |

| character_set_connection | gbk |

| character_set_database | utf8 |

| character_set_filesystem | binary |

| character_set_results | gbk |

| character_set_server | utf8 |

| character_set_system | utf8 |

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

 

注:以前2个来确定,可以使用set names utf8,set names gbk设置默认的编码格式;

 

执行SET NAMES utf8的效果等同于同时设定如下:

SET character_set_client='utf8';

SET character_set_connection='utf8';

SET character_set_results='utf8';

 

2.查看test数据库的编码格式:

mysql> show create database test;

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

| Database | Create Database |

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

| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ |

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

 

3.查看yjdb数据库的编码格式:

mysql> show create table yjdb;

| yjdb | CREATE TABLE `yjdb` (

`sn` int(5) NOT NULL AUTO_INCREMENT,

`type` varchar(10) NOT NULL,

`brc` varchar(6) NOT NULL,

`teller` int(6) NOT NULL,

`telname` varchar(10) NOT NULL,

`date` int(10) NOT NULL,

`count` int(6) NOT NULL,

`back` int(10) NOT NULL,

PRIMARY KEY (`sn`),

UNIQUE KEY `sn` (`sn`),

UNIQUE KEY `sn_2` (`sn`)

) ENGINE=MyISAM AUTO_INCREMENT=1826 DEFAULT CHARSET=gbk ROW_FORMAT=DYNAMIC |

 

四、避免导入数据有中文乱码的问题

 

1:将数据编码格式保存为utf-8

 

设置默认编码为utf8:

set names utf8;

 

设置数据库db_name默认为utf8:

ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

 

设置表tb_name默认编码为utf8:

ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

 

导入:

LOAD DATA LOCAL INFILE 'C:\utf8.txt' INTO TABLE yjdb;

 

2:将数据编码格式保存为ansi(即GBK或GB2312)

 

设置默认编码为gbk:

set names gbk;

 

设置数据库db_name默认编码为gbk:

ALTER DATABASE `db_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

 

设置表tb_name默认编码为gbk:

ALTER TABLE `tb_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

 

导入:

LOAD DATA LOCAL INFILE 'C:\gbk.txt' INTO TABLE yjdb;

 

注:1.UTF8不要导入gbk,gbk不要导入UTF8;

2.dos下不支持UTF8的显示;

 

五、解决网页中乱码的问题

 

将网站编码设为 utf-8,这样可以兼容世界上所有字符。

 

如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为 GBK, GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK。

 

1.编辑/etc/my.cnf ,在[mysql]段加入default_character_set=utf8;

 

2.在编写Connection URL时,加上?useUnicode=true&characterEncoding=utf-8参;

 

3.在网页代码中加上一个"set names utf8"或者"set names gbk"的指令,告诉MySQL连线内容都要使用

utf8或者gbk;

MySQL会出现中文乱码的原因不外乎下列几点: 1.server本身设定...

解决方法:

执行mysqld -console命令,查看error信息,对症下药

但一般情况下,主要是因为mysql目录下的data文件夹中内容不正确,解决方法有以下两个

1.在开启服务前执行初始化命令

mysqld --initalize

然后启动服务

2.下载5.6或之前版本的mysql压缩包

将压缩包解压后里面的data文件夹复制到当前mysql所在文件夹根目录中

然后启动服务

无论是第一个操作还是第二个操作,记得先关掉服务在操作,操作完了再打开服务

 

问题二:

mysql缺少performance_schema.session系统表导致各类问题

解决方法:

使用以下两个命令后重启服务(windows下关闭再打开)

mysql_upgrade -u root -p

mysql_upgrade -u root -p --force

 

问题三:

在mysql中插入数据时使用中文报错,Error Code: 1366. Incorrect string value。

解决方法:

需要完成以下几步,若第一无法完成可先跳过,只影响数据库中已有内容,但是为了保证新的数据库、数据表可写中文,第二三步一定要正确。

1.设置mysql的编码,统一改为utf8(因为utf8是兼容性比较强的编码,如果需要使用其他语言也可以修改为其他的编码)

打开mysql的根目录,

新建文件my.ini然后将my-default.ini中内容复制到my.ini然后删除my-default.ini文件,

在my.ini文件的[mysqld]部分下面加一个语句character_set_server=utf8,

随后关闭mysql服务再启动mysql服务。

登陆进入mysql后,别选择任何数据库,直接使用s命令查看字符集编码,查看server这一项的编码是否为utf8,如果是的话就算成功

剩下的client和conn应该默认为gbk,如果不是的话可以再网上搜一搜设置办法

至于DB的编码,其实是和数据库有关的,当最开始连接入mysql时,其实是选择了sys数据库(默认的系统数据库),等做了下面的第二步后再选择其他数据库之后再使用s命令,你们就会发现区别。

 

2.在新建数据库时,将数据库设置为utf8编码

做了这一步,你就会发现你刚创建的数据库的DB字符集编码一定是utf8,也保证了你新建的数据库可以输入中文。

具体如下

CREATE DATABASE 数据库名字 CHARACTER SET 'utf8';

3.如果数据库的编码未设置,而你还是想输入中文,那么你需要在新建数据表的时候对表的编码进行设置

如下代码段,建立多个字段,使用CHARACTER SET 'utf8'代码把表中的所有字段改为utf8格式

CREATE TABLE 表名称

(

一大堆字段

)CHARACTER SET 'utf8';

 

以上步骤尽量在mysql安装配置的时候就完成,避免不必要的麻烦,或者至少完成第二第三步。

本文由金沙棋牌发布于金沙棋牌app手机下载,转载请注明出处:mysql使用中遇到的问题,免安装版或zip版

关键词: