欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL5.7.20安装教程及乱码问题解决

程序员文章站 2022-06-22 13:39:29
硬件条件 Window 10 X64 MySQL5.7.20 ZIP压缩版 安装步骤 MySQL官网下载ZIP mysql-5.7.20-winx64版本(本人目前下载的最新...

硬件条件

Window 10 X64 MySQL5.7.20 ZIP压缩版

安装步骤

MySQL官网下载ZIP mysql-5.7.20-winx64版本(本人目前下载的最新稳定版本)

解压压缩包到自己的目录,本人是D:\MySQL\mysql-5.7.20-winx64为MySQl的环境变量 修改自己的环境变量(以下截图是WIN10系统的截图,如果有差异,请参考其他系统的配置)

MySQL5.7.20安装教程及乱码问题解决MySQL5.7.20安装教程及乱码问题解决

创建my.ini文件,linux是my.cnf.并放到环境变量的路径,即bin目录的上一级,即D:\MySQL\mysql-5.7.20-winx64

[client]

default-character-set=utf8

[mysql]

#设置mysql客户端默认字符集

default-character-set=utf8

[mysqld]

#设置3306端口

port = 3306

#设置mysql的安装目录

basedir=D:\MySQL\mysql-5.7.20-winx64

#设置mysql数据库的数据的存放目录

datadir=D:\MySQL\mysql-5.7.20-winx64\data

#允许最大连接数

max_connections=200

#服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

#创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

记住 :一定要先把编码character配置好,否则安装完后在去添加character相关的配置,不一定生效,这个问题卡了我很久,不管怎么设置,show variables like ‘char%’的结果集server和database始终都是latin字符集。还有my.ini虽然可以放到bin下面,但要手动创建data目录,然后也可以安装mysql,但也不知道是不是这个原因,导致后面去修改my.ini文件的配置无法生效。所以网上之前的一篇错误文章,可能会扩散很大,所以亲自下手才是真理。 WIN+X,选择命令提示符(管理员),一定要管理员模式,然后在命令行里分别执行

cd /d D:\MySQL\mysql-5.7.20-winx64\bin

mysqld – initialize-inscure –user=mysql

执行完后,D:\MySQL\mysql-5.7.20-winx64目录就会创建一个data目录。

如果不行,直接在bin目录下执行mysql_secure_installation.exe便可,其实这种更方便。 执行 mysqld -install 如果出现Service successfully installed 说明注册成功了 net start mysql 启动服务就可以了。( net stop mysql停止服务,sc delete mysql 删除服务) 执行上面步骤,默认就创建了个MySQL服务, 不区分大小写 show variables like ‘char%’;,在Navicat(用户root 端口3306 密码空不用输,就可以登陆 )可视化工具里查询,发现除了文件是二进制,其他编码都是utf8,

这样就说明了编码可是都正确,就不会出现中文乱码的问题。

MySQL5.7.20安装教程及乱码问题解决

由于mysql_secure_installation命令或exe文件执行后,root用户无密码的,

当然也可以用mysqld–initialize –console执行命令,这个方法初始化完后,root用户有密码。密码 是console中输出的一段字符串(记住该字符串)。后面这种我没试过,只是最初了用了5.7之前的安装方式,或在console生存一些字符串,其中有临时密码。如果mysqld – initialize-inscure –user=mysql或mysql_secure_installation.exe的方式,那就请看下面 在Navicat工具里,请看上面个图, 点击用户,然后就看到三个用户 的列表,双击其中任何一个,都可以修改相应的密码

或者在命令行里执行mysqld –skip-grant-tables,这种命令忘记密码的时候可以跳过验证,然后用下面三种命令。用户一般是root ,…。如果记住密码,也可以先登陆后,然后用下面三种请看

mysqladmin -u 用户-p 旧密码 password 新密码

UPDATE user SET password=PASSWORD(‘新密码’) WHERE user=’用户’; FLUSH PRIVILEGES

SET PASSWORD FOR root=PASSWORD(‘新密码’);