坑边闲话:今天下午,游戏正 high,小强一个微信告诉我,需要我帮他写个 MySQL 语句。这种第四代语言,在我们这种不搞数据科学的人手里,也就当成存储服务使用,正儿八经写 SQL 语句倒是没怎么搞过,用的时候现翻书是常态。Mac 上的 MySQL 已经很久没有用过了。这次挑战一下 Windows 10 平台的 MySQL 8.0 的安装、连接、调试。

之前我说过,在 Windows 的 .Net 平台下,做很多开发还是很舒服的。但是 SQL Server 是个例外。安装 SQL Server 就是个很困难的事情,中间步骤有很多术语都不明白微软是怎么搞的。好在,我并不经常与数据库打交道。咱们切入正题。

首先说一下答案:MySQL 8.0 在 PowerShell 里面的表现,与 macOS 下基本一致,除了不能清空屏幕命令行之外,基本没什么区别,都很简洁干练。

1. 官方网址下载 MySQL 8.0·

可以到 Oracle 的网站下载 Community 版本的最新版 MySQL. 网页地址在这里

懒人下载链接在这里,点击即可下载标准版 MySQL 8.0.

以上全部都是 64 位的软件链接。

2. 命令行安装·

通过 URL 下载到的是一个压缩包,解压之后是一个很标准的软件包。含有 bin 目录(用来存放主要的二进制程序)、docs 目录(存放本软件的相关说明)、lib 目录(存放许多动态链接库),其他目录我们就不一一介绍了,总之,这是一个很标准的软件目录。

2.1 安装第 1 步·

解压文件,移动文件夹至 C 盘的 Program Files 文件夹,并重命名为 MySQL.

2.2 安装第 2 步·

MySQL 文件夹下,新建一个名为 my.ini 的文本文件。注意,不要自己更改为其他名字。

在该文件里写入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[mysql]

# 设置 mysql 客户端默认字符集
default-character-set=utf8

[mysqld]

# 设置 3306 端口
port = 3306

# 设置 mysql 的安装目录
basedir=C:\Program Files\MySQL

# 设置 mysql 数据库的数据的存放目录
datadir=C:\Program Files\MySQL\data

# 允许最大连接数
max_connections=20

# 服务端使用的字符集默认为 8 比特编码的 latin1 字符集
character-set-server=utf8

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

通过后缀 .ini 我们可以知道,这个文件是一个初始化配置文件。它将会告诉 MySQL 如何设置初始化的数据库。

2.3 安装第 3 步·

切换到 MySQL 文件夹的 bin 目录里。在这个目录里打开管理员模式的 PowerShell. 启用管理员模式是因为要读写该目录,而所有 Program Files 目录下的文件,都只能在管理员模式下读写。

在 PowerShell 里输入如下命令:

1
.\mysqld.exe install

这一步告诉 Windows 10,要把 MySQL 作为一项服务启动。而新手可能对 mysqld 这个词语中的最后一个字母 d 不太理解,好好的 MySQL 为什么加一个后缀 d?其实,这个字母 d 是指 daemon,学过操作系统原理的你,应该知道有一类很特殊的进程叫做 守护进程,其作用就是作为一项服务存在。你因该猜到了,这个后缀 d 指的就是守护进程,每次使用 MySQL 之前都要启动这个进程。新手应该逐渐收集这种计算机“黑话”并加以记忆和联想。

2.4 安装第 4 步·

bin 目录下继续输入命令

1
.\mysqld.exe --initialize --console

--initialize 会告诉 MySQL 根据my.ini中的字段,创建一个系统数据库以及初始化数据文件目录,这个地方还会让 MySQL 生成一个随机的 root 用户的密码并输出在屏幕上。一定要看清楚并记住这个密码,否则你无法第一次登录 MySQL,切记!

2.5 安装第 5 步·

启动 MySQL 服务。

bin 目录下,继续输入命令:

1
net start mysql

运行完这个命令,屏幕输出会告诉你 MySQL 服务已经启动了。

2.6 安装第 6 步·

mysql.exe 的路径写入系统的 PATH 环境变量。Windows 的环境变量是通过图形化方式管理的,这与 UNIX 系列系统有很大不同。个人认为 Windows 的管理比较简单,还算不错吧。

写入方法也很简单,在文件管理器的地址栏,输入 控制面板\系统和安全\系统,在弹出界面的左边找到 高级系统设置,进入,单击 环境变量并在弹出的对话框里双击 PATH 哪一行,系统会再弹出一个对话框。选择 新建,输入C:\Program Files\MySQL\bin.

这个路径是你的 MySQL 程序的地址。如果你安装在了其他地方,那就自定义设置。一路确定,并退出。

2.7 尝试打开 MySQL 8.0·

重新打开一个 PowerShell 窗口,一定要重新打开,否则环境变量不生效。

在新 PowerShell 窗口下输入

1
mysql -u root -p

这时候会让你输入密码,密码在第 3 步已经详细说了。输入,Enter!顺利的话,你就进入系统了。

重新设置密码:

1
ALTER USER 'root'@'localhost' identified with mysql_native_password by '<你的密码>';

之后就可以在任意窗口下,通过新的密码登录 MySQL 了。

注意,如果你重启电脑,可能需要重新启动 MySQL 服务才能使用 MySQL,命令如下:

1
net start mysql

聪明的你一定想到了,关闭 MySQL 服务的语句是

1
net stop mysql

总结·

到此,MySQL 在 Windows 10 上的配置就讲完了。

学习数据科学和计算机后端的同学,要好好学习 MySQL 啊!以后我会写有关写 MySQL 习惯的内容,应为 SQL 语句比较特殊,它不像 Python、C++ 之类的大部分程序可以反复运行调试,所以写起来 debug 需要一些特殊方法。