mysql数据库下载安装和解决中文乱码问题(吐血总结)

一,下载mysql
首先mysql 是广为人知且使用最为广泛的中小型数据库之一,而且较为方便易用,很多开发人员初步接触数据库都是从mysql开始,当然现在流行的数据库有很多,大家可以网上搜索,这里只介绍免安装版本mysql-5.7.10-winx64(64位系统,当然上下几个版本都差不多,安装使用方法一样)。首先官网下载mysql数据库,友情链接:http://dev.mysql.com/downloads/mysql/

选择你的系统和位数,官网上各种系统的都有:

这里写图片描述

选择 zip免安装版下载(之前都是安装版,学要手动安装,现在比较流行免安装版本,解压之后配置一下即可食用)

这里写图片描述

我写的比较详细,考虑到一些初学者的问题,老司机们自动忽略。


二, 开始进行数据库的配置:

打开解压后的文件夹你会看到有一个 my-default.ini文件,

这里写图片描述
这是 里面的 默认内容:

这里写图片描述

这个文件是mysql数据库的默认配置文件,你可以通过修改其中的内容更改数据库的相关配置(包括很多,编码,端口,等等可以再网上查),现在我们要做的是把这个文件拷贝一份,重新命名my.ini,
源文件不要管他,打开这个进行编辑:

这里写图片描述
注意 不要写错,代码送你直接复制吧:

[client]
port=3306
default-character-set=utf8
[mysqld]
 port=3306
character_set_server=utf8
basedir= D:\mysql-5.7.10-winx64\mysql-5.7.10-winx64
#解压目录
datadir= D:\mysql-5.7.10-winx64\mysql-5.7.10-winx64\data
#解压目录下data目录
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#服务启动目录
[WinMySQLAdmin]
D:\mysql-5.7.10-winx64\mysql-5.7.10-winx64\bin\mysqld.exe

注意’#‘后面是注释,就是绿色的,对于配置是无效的。

然后保存一下!!

然后是要配置环境变量!!可能有些小白还不太懂环境变量是什么,百度百科这么说:

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。
环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

简单来时就是这个服务在CMD命令行使用时所需要配置的属性,以及路径等,一般要在命令行下运行的程序,服务,都需要配置环境变量,比如Java开发环境,一些开发软件的环境变量配置等。
现在就来配置环境变量:

这里写图片描述
我的电脑,右键属性,然后高级系统设置-环境变量-系统变量-找到“path” -编辑-(在这里加了路径的*.exe程序 都可以 打开CMD直接运行,)加上你的mysql解压路径“D:\mysql-5.7.10-winx64\mysql-5.7.10-winx64\bin”要到 bin目录下 斌目录下 一般都是 软件可执行文件。网上还有其他方式 是填加 MYSQL_HOME 然后 在 path里加%MYSQL_HOME%bin的 其实都一样。
到这 环境变量就好了。


三,安装服务到系统中
因为是下载的免安装版本的,所系系统中不会有mysql服务,需要手动安装,你可以先在CMD下查看系统的服务

CMD命令

services.msc

如果之前没安装过就会发现没有mysql服务,需要手动配置。
接下来 以管理员身份进入 dos命令窗口(非常重要), :
先初始化Data目录:以前5.6版本自带data目录,不需要这一步!如果没有这一步会无法启动mysql服务,报错MYSQL 服务无法启动,在初始化之前,务必将data目录底下的文件删除掉。
在CMD窗口中输入以下命令:

mysqld --initialize-insecure 

然后 进行服务安装到电脑上:

mysqld install MySQL --defaults-file="D:\mysql-5.7.10-winx64\mysql-5.7.10-winx64\bin\my.ini"

默认文件就是 my.ini文件的位置
然后 就可以启动服务了:

net start mysql

备注一下:移除安装是mysqld remove;mysqld –initialize-insecure自动生成无密码的root用户;mysqld –initialize是自动生成随机密码用户;

在查看一下 服务会发现 已经有了MYSQL而且 已经启动

这里写图片描述


四,进入数据库:
这时直接打开命令行输入

mysql -u root -p

然后会让 输入 password
致敬 Enter就可以,初始密码为空,你可以设置 你的密码:

set password for root@localhost=password ('123');

“123” 就是 你的密码 ”root“ 是你的账户名。


五,编码相关
一切就绪你可以创建你的数据库和表了,但是很多小白不知道其中暗藏杀机,很多人后知后觉,用了数据库很久才发现或者遇到字符编码问题,其实字符编码问题经常会困扰我们很久,先介绍一下字符编码:常用的:ASCII,utf8(或者UTF-8一样),GBK,GB2312,ISO,Unicode等,在web开发或者系统开发中都会遇到很多类似情况,这里简单介绍一下mysql数据库的编码问题。
1,首先查看数据库的编码,进入mysql:

show veriables like 'char%';

这里写图片描述

以及 命令:

status;

这里写图片描述
可以看到 很多编码,当然你如果想修改这些编码可以通过命令:

SET character_set_client = utf8 ; 
SET character_set_server = utf8 ; 
SET character_set_database = utf8 ; 

但是一旦服务重启,这些设置就会改变,这时可以通过修改my.ini文件的相关配置修改

[mysql]
default-character-set=utf8
[mysqld]
character_set_server=utf8

mysql是客户端
mysqld是服务端
但有的时候这些修改也没用,那就需要进入mysql配置程序进行配置,网上各种流传 使用mysql。。config文件进去mysql的配置程序,但是官网上下载的免安装版本的并没有这个程序,当然里面的很多可运行程序我也不知道干嘛用的。但是一般通过以上方法就可以修改 mysql数据库的编码,把它设置成你需要的就可以的,一般推荐使用UTF-8,因为它支持大多数的语言,包括简体中文。


2,然后是数据库的编码,你可以在新建表的时候添设置。

create database 数据库名 character set 'utf8';

如果不自己设置 就采用数据库默认的编码.
为了确保 编码一致,


3,数据库中的表也要设置编码,在建表的时候 就可以设置:

CREATE TABLE bian'ming ( 
`ID` varchar(40) NOT NULL default '', 
`UserID` varchar(40) NOT NULL default '', 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

通过 default charset=utf8设置编码。
当然你也可以通过代码修改,但是改的话之前保存的数据记录不会改变

alter table 表名 character set=utf8;

至此 数据库 端代码 设置大概如此,如果有其他的编码设置方式及方法 欢迎分享交流。


4,前端编码然后关于web开发中前端中的编码问题 有几个想说一下,也是我遇到的问题,首先是jsp页面中的

<%@ page language="java" import="java.util.*"  contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

(1),pageEncoding是jsp文件本身的编码,就是整个jsp页面是以这个编码保存的文件。
在JSP标准的语法中,如果 pageEncoding属性存在,那么JSP页面的字符编码方式就由pageEncoding决定,否则就由contentType属性中的 charset决定,如果charset也不存在,JSP页面的字符编码方式就采用默认的ISO-8859-1。


(2),ContentType

ContentType属性指定了MIME类型和JSP页面回应时的字符编码方式。MIME类型的默认值是“text/html”; 字符编码方式的默认值是“ISO-8859-1”. MIME类型和字符编码方式由分号隔开

pageEncoding的内容只是用于jsp输出时的编码,不会作为header发出去的。

pageEncoding 是通知web server jsp的编码。

关于JSP页面中的pageEncoding和contentType两种属性的区别:

pageEncoding是jsp文件本身的编码

contentType的charset是指服务器 发送给客户端时的内容编码

JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType。

**第一阶段是**jsp编译成.Java,它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8 JAVA源码(即.java),如果pageEncoding设定错了,或没有设定,出来的就是中文乱码。

第二阶段是由JAVAC的JAVA源码至Java byteCode的编译,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码。

JAVAC用UTF-8的encoding读取java源码,编译成UTF-8 encoding的二进制码(即.class),这是JVM对常数字串在二进制码(java encoding)内表达的规范。

第三阶段是Tomcat(或其的application Container)载入和执行阶段二的来的JAVA二进制码,输出的结果,也就是在客户端见到的,这时隐藏在阶段一和阶段二的参数contentType就发挥了功效


contentType的設定.

pageEncoding 和contentType的预设都是 ISO8859-1. 而随便设定了其中一个, 另一个就跟着一样了(TOMCAT4.1.27是如此). 但这不是绝对的, 这要看各自JSPC的处理方式. 而pageEncoding不等于contentType, 更有利亚洲区的文字 CJKV系JSP网页的开发和展示, (例pageEncoding=GB2312 不等于 contentType=utf-8)。

jsp 文件不像.java,.java在被编译器读入的时候默认采用的是操作系统所设定的locale所对应的编码,比如中国大陆就是GBK,台湾就是BIG5 或者MS950。而一般我们不管是在记事本还是在ue中写代码,如果没有经过特别转码的话,写出来的都是本地编码格式的内容。所以编译器采用的方法刚好可 以让虚拟机得到正确的资料。

但是jsp文件不是这样,它没有这个默认转码过程,但是指定了pageEncoding就可以实现正确转码了。


(3)然后还有一个编码
这里写图片描述
就是 下面这个命令:

<meta name="content-type" content="text/html; charset=UTF-8">

它的作用是:通过标签模拟response头,起到告诉浏览器用utf8的编码解析,在浏览器中的输入或者取数据都是被设置为utf8的编码。
此外这个设置还有一个功能是设置jsp页面中的form表单的post方法中使用的编码也是utf8,这时就要把你的form方法都设为

method=”post”,post和get方法的区别大家可以自己去查,这里,因为系统默认的get方法是ISO编码的,所以用get方法会出现中文乱码问题。所以使用post方法。

这三个 编码 都设置成 统一的的utf8编码 就会极大地减少 中文乱码的可能性。


(4)此外 还有一种可能 是 你建的项目文件的编码 我用的Myeclipse 中会有设置 windows-preferences-General-Workspace 中设置 项目工程编码,以及空格的编码。
这里写图片描述

以上所有编码设置统一 一般就不会 出现中文乱码的问题,当然不排除其他原因和解决方法,欢迎提出意见交流。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Phoenix_smf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值