Windows下安装MySQL压缩zip包

1. 下载

https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.20-winx64.zip

2. 解压到特定目录

本例中解压到C:\UserDefined\MysqL-5.7.20-winx64

3. 准备my.ini

创建目录C:\UserDefined\MysqL-5.7.20-winx64\conf,并在该目录下创建文件my.ini:

[MysqL]
# 设置MysqL客户端认字符集
default-character-set=utf8

#[client]
## 设置MysqL客户端连接服务端时认使用的端口
#port=3306
#default-character-set=utf8

[MysqLd]
# 设置3306端口
port=3306
# 设置MysqL的安装目录
basedir=C:\\UserDefined\\MysqL-5.7.20-winx64
# 设置MysqL数据库的数据的存放目录
datadir=C:\\UserDefined\\MysqL-5.7.20-winx64\\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集认为UTF8
character-set-server=utf8
# 创建新表时将使用的认存储引擎
default-storage-engine=INNODB
# 认使用“MysqL_native_password”插件认证
#MysqL_native_password
default_authentication_plugin=MysqL_native_password
##以下设置开启可以无密码登录MysqL,通常用于密码设置及权限管理
#skip-grant-tables

 

 

4. 初始化并安装系统服务

4.1 初始化

C:\UserDefined\MysqL-5.7.20-winx64\bin\MysqLd.exe  --initialize  --defaults-file=C:\UserDefined\MysqL-5.7.20-winx64\conf\my.ini 

注意:

1. 使用 --initialize 是会随机生成一个MysqL root账户的密码,在启动后,需要使用无密码模式进去,设置root密码,才可以使用;如果想查看随机生成的密码,可以在data目录下,用文本编辑软件(如记事本)打开*.err文件,即可看到随机生成的root密码

 

2. 如果想生成空的root密码,可以使用模式 --initialize-insecure,此时会生成一个空的root密码,即无密码模式登录,客户端可以使用MysqL -h 127.0.0.1 -uroot登录

C:\UserDefined\MysqL-5.7.20-winx64\bin\MysqLd.exe  --initialize-insecure  --defaults-file=C:\UserDefined\MysqL-5.7.20-winx64\conf\my.ini 

 

4.2 安装系统服务

C:\UserDefined\MysqL-5.7.20-winx64\bin\MysqLd.exe   install  MysqL5720 --defaults-file=C:\UserDefined\MysqL-5.7.20-winx64\conf\my.ini 

其中注册的windows服务名称MysqL5720

执行完成后,显示Service successfully installed.  则代表已经安装完成

 

 此时,打开windows服务列表,应该可以看到注册的windows服务

 

如果想删除windows服务,可以用管理员身份打开cmd,并执行下面命令进行删除

sc delete MysqL5720

 

如果想启动MysqL windows服务,可以在命令行键入

rem 启动MysqL windows服务
net start MysqL5720
rem 停止MysqL windows服务
net stop  MysqL5720
rem 删除MysqL windows服务
sc delete MysqL5720

 

5. 客户端登陆MysqL

5.1. 无密码模式登录

如果使用的是--initialize 模式初始化的MysqL,忘记了root的密码,此时需要用无密码模式登录MysqL,并修改设置root的密码,方法为。

5.1.1 修改my.ini

在my.ini文件[MysqLd]下面添加skip-grant-tables,然后重启MysqLd windows服务

 

5.1.2 MysqL客户端登陆

MysqL -h 127.0.0.1 -uroot

 

5.1.3 修改root密码

ALTER USER 'root'@'localhost'IDENTIFIED BY 'root';
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

如果出现下面错误

MysqL> ALTER USER 'root'@'localhost'IDENTIFIED BY 'root';
ERROR 1290 (HY000): UnkNown error 1290

这是因为MysqL正在MysqL正使用%s选项运行,因此不能执行该语句,要先执行

flush privileges;

 

 

 

注:

也可使用下面方法来设置root用户的密码

use MysqL;
update MysqL.user set authtntication_string=password('root') where user='root'; 
flush privileges;

 

5.1.4 重置my.ini并重启MysqL windows 服务

修改my.ini,把skip-grant-tables注释掉,并重启MysqL服务

 

 

 

5.2 通过MysqL客户端使用MysqL服务

在5.1 步骤做好之后,即可用过MysqL客户端正常使用MysqL服务了!!如果在5.1中是通过

use MysqL;
update MysqL.user set authtntication_string=password('root') where user='root'; 
flush privileges;

方式来设置root用户密码的,在客户端执行命令时都可能会遇到错误

ERROR 1820 (HY000): UnkNown error 1820

错误的含义是:ERROR 1820 (HY000): You must SET PASSWORD before executing this statement,即要先修改密码后才能正常使用数据库,此时修改一下root用户的密码即可,可通过下面sql中任意一条执行即可

SET PASSWORD = PASSWORD('root');
--ALTER USER 'root'@'localhost'IDENTIFIED BY 'root';
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;

 

 

补充:
MysqL什么时候需要flush privileges?
flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从MysqL库(MysqL数据库的内置库)中提取到内存里。MysqL用户数据和权限有修改后,希望在"不重启MysqL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...