在 Windows10 部署 MySQL-8.0.28「免安装、无坑」

361 阅读3分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第20天,点击查看活动详情

MySQL-8.0.28 安装包下载地址:传送门

首先解压到一个让我们感到舒服的位置,具体什么位置,你喜欢,但请不要奇奇怪怪,比如:「D:/学习资料/日语/」什么奇怪路径。

解压后,我们按照官方的指导,应该建一个 my.ini 文件,用来配置 MySQL 实例,就像下图这样。

image.png

根据 MySQL 的官方指导,我们需要配置 MySQL 的安装目录和数据存放目录。下面是官方提供的模板:

[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=E:/mydata/data

我们要做的很简单,将模板复制到 my.ini 文件,再修改相应的路径即可,如下图所示:

注意正斜杠和反斜杠,使用反斜杠要写两个。

image.png 这个时候基本的配置就结束了,看你有没有特殊的需求需要配置,比如:需要开放出去给远程连接、设置启动端口号、设置大小写敏感等等。以忽略大小写为例,我们在 my.ini 中加上下面这一行即可:

# 设置
lower_case_table_names=1

lower_case_table_names 是 MySQL 设置大小写是否敏感的一个参数。 lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的。 lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写。 lower_case_table_names=2 表名存储为给定的大小写但是比较的时候是小写的。 Linux 环境下 lower_case_table_names 默认值为 0 ,Windows 下默认值是 1,Mac OS 下默认值是 2。

需要注意的是,该值需要在初始化数据库之前设置,初始化后修改会导致服务启动失败,但也不是说修不好,麻烦就是了。

设置完成之后,我们就可以启动服务了。

要初始化数据目录,可以使用 --initialize--initialize-insecure 选项调用 mysqld,具体取决于您是希望服务器为该帐户生成随机初始密码,还是创建该帐户而不使用密码:'root'@'localhost'。我们可以根据自己的需求选择。

  • 使用 --initialize 进行“默认安全”安装(即,包括生成随机初始密码)。在这种情况下,密码被标记为已过期,您必须选择一个新密码。

  • 使用 --initialize-insecure 时,不会生成任何密码。这是不安全的;假定您打算在将服务器投入生产使用之前及时为帐户分配密码。

在 MySQL 的安装目录下的 bin 目录,以管理员身份打开终端,运行下面的命令:

$ .\mysqld.exe --initialize
$ .\mysqld.exe --install

如果成功运行,你会得到下图一样的结果:

image.png

接着我们就可以启动服务了。

输入以下命令,启动服务:

$ net start mysql

image.png

启动服务之后我们就可以直接使用了吗?并不能,前面我们说过,使用 --initialize 参数生成的密码会被标记为已过期,我们必须重新设置一个新密码。

首先我们使用随机生成的密码登入 MySQL:

$ .\mysql.exe -u root -p

此时终端会提示我们输入密码,我们在刚设置的 datadir 路径下,能找到一个错误日志,该密码就在错误日志中,我们复制密码登录即可。如下图所示:

image.png

最后一步,修改密码。

成功连接后,我们执行以下命令修改密码:

$ mysql>  ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

你可以将 123456 替换成任何你想要的数值。

至此,MySQL 就安装完成了,我们可以使用下面的命令控制 MySQL 服务的启动和关闭:

$ net start mysql
$ net stop mysql

至于为什么不注册给 Windows 服务自动管理,废话,我都使用压缩包的形式安装了,如果我要使用 Windows 服务的话,安装版不香吗「手动狗头」。