此博客存在上一个版本,如果读者对笔者以前版本的博客依然感兴趣,可以访问此链接:https://blog.csdn.net/wangpaiblog/article/details/111938395
【说明】
-
本教程讲述的是 Windows 下 MySQL 免安装版的下载与配置。这往往是喜欢从 CMD 中执行 MySQL 代码,或者是希望需要下载的文件尽可能小的使用者的偏爱。如果读者和他们与众不同,更喜欢站在巨人的肩膀上,可以选择集成的IDE来避免进行本教程中讲述的烦琐操作。关于这方面的内容,可见笔者的另一篇博客:
MySQL Community 安装教程:
https://blog.csdn.net/wangpaiblog/article/details/112000033 -
对于 Linux 下 MySQL 的安装,可见笔者的另一篇博客:
Linux 下 MySQL 安装教程:
https://blog.csdn.net/wangpaiblog/article/details/120259448
笔者的环境:
MySQL 8.0.27
Windows 10 教育版
-
打开 MySQL 官网,找到 Community 版的下载。选择 Community 是因为该版本免费而且是通常使用的版本。具体的流程如下面的图片所示。
MySQL 的官网是:https://www.mysql.com/
MySQL 下载处的最终网址:https://dev.mysql.com/downloads/mysql/
-
将下载好的 mysql-8.0.27-winx64.zip 解压缩,得到 MySQL 安装目录。安装目录应该是一种含文件夹 bin 的目录。在笔者的 Windows,各路径如下:
- MySQL 安装目录:D:mysql-8.0.27-winx64
- MySQL 命令目录:D:mysql-8.0.27-winx64bin
- MySQL 数据库数据存放目录:D:mysql-8.0.27-winx64data
- MySQL 端口号:3306
-
在 MySQL 的目录下创建一个 MySQL 配置文件 my.ini。此配置文件是用来规定 MySQL 服务进程的参数信息。
[mysql] # 设置 MySQL 客户端默认字符集 default-character-set=utf8 [mysqld] #设置 MySQL 端口号 port = 3306 #skip-grant-tables # 设置 MySQL 的安装目录 basedir=D:mysql-8.0.27-winx64 # 设置 MySQL 数据库的数据的存放目录 datadir=D:mysql-8.0.27-winx64data # 允许最大连接数 max_connections=200 # 服务端使用的字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB [client] #default_character_set=utf8
-
一般来说,只需要修改上面配置文件 my.ini 中的端口 port、MySQL 安装目录 basedir、MySQL 数据存放路径 datadir。
-
以管理员身份运行 CMD。如果不以管理员身份运行,将会有报错 Install/Remove of the Service Denied!。
-
以管理员身份运行 CMD 的方法有很多,这里只举一例。
-
使用如下命令找到 CMD 的路径,然后右键单击,选择 以管理员身份运行。通常,CMD 的路径位于 C:WindowsSystem32cmd.exe。
where cmd
-
这样一来,就打开了 CMD 窗口,窗口上应该有 管理员 字样,窗口显示的当前路径为 C:Windowssystem32。
-
使用如下命令进入 MySQL 所在的磁盘。
d:
C:Windowssystem32>d: D:>
-
使用如下命令进入 MySQL 安装路径。
cd mysql-8.0.27-winx64bin
D:>cd mysql-8.0.27-winx64bin D:mysql-8.0.27-winx64bin>
【提示】
如果在电脑上只安装一个 MySQL,则可以选择设置环境变量 Path 来避免这些麻烦。同很多应用一样,设置环境变量并不是必要的,只是能避免每次都要先进入 bin 目录后才能输入命令。
设置 Windows 环境变量的方法可见笔者的另一篇博客:https://blog.csdn.net/wangpaiblog/article/details/113532591 。这里,需要在环境变量 Path 中设置的变量值为 D:mysql-8.0.27-winx64bin。
-
-
现在,应该就在 CMD 中以管理员身份进入到了 MySQL 的命令目录。输入命令 mysqld install xxx 在操作系统中注册 MySQL 服务,其中,xxx 可以任意取名。
mysqld install mysql01
D:mysql-8.0.27-winx64bin>mysqld install mysql01 Service successfully installed. D:mysql-8.0.27-winx64bin>
-
此时,应该可以在 Windows 中看到刚刚注册的 MySQL 服务。
-
上面的配置文件编辑完成之后。使用如下命令初始化 MySQL 目录。
mysqld --initialize
D:mysql-8.0.27-winx64bin>mysqld --initialize D:mysql-8.0.27-winx64bin>
-
使用命令 net start xxx 启动 MySQL 服务。其中,xxx 是前面起的 MySQL 服务名。
net start mysql01
D:mysql-8.0.27-winx64bin>net start mysql01 mysql01 服务正在启动 . mysql01 服务已经启动成功。 D:mysql-8.0.27-winx64bin>
【踩坑提醒】
如果此处出现 服务无法启动 的情况,请检查:
- 前面配置文件中的 MySQL 安装目录设置的是否正确
- 前面配置文件中的 MySQL 数据库数据存放目录设置的是否正确
- 前面配置文件中设置的端口号是否已被占用
-
使用命令 mysql -u root -p -Pxxx 进入 MySQL 数据库。其中,xxx 是前面在配置文件中设置的端口号。
mysql -u root -p -P3306
-
此处将会提示输入密码。这个密码是由前面执行命令 mysqld --initialize 时生成的,它在前面设置的 数据库数据存放目录 中的文件 计算机名.err 中。具体方法是用记事本打开该文件,找到带 password 的一行 A temporary password is generated for root@localhost:。此文字后面的就是生成的随机密码(此密码不带空格)。输入密码后即可进入数据库。
D:mysql-8.0.27-winx64bin>mysql -u root -p -P3306 Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 8 Server version: 8.0.27 MySQL Community Server - GPL Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>
【踩坑提醒】
如果上面的命令省略参数 -Pxxx,则相当于提供的是 MySQL 默认端口号 3306。如果这与前面的配置文件中设置的不一致,这将引发如下报错:
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (10061)
-
初次登录之后需要修改密码。修改密码的命令为:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';。其中,新密码 要被换成自己设置的密码,且 新密码 要位于单引号之中。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'helloworld';
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'helloworld'; Query OK, 0 rows affected (0.02 sec) mysql>
【踩坑提醒】
在 MySQL 5.7 及以前的版本,修改密码的命令是 set password for root@localhost =password(‘新密码’);。如果在 MySQL 8.0 中使用该命令,会发生如下报错:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'password(‘helloworld’)' at line 1
-
MySQL 登录成功后,就可以使用 MySQL 语言来对数据库进入控制了。
-
在使用完数据库后,就可以考虑退出了。退出 MySQL 的方法是,先使用命令 exit 来退出登录。
exit
mysql> exit Bye D:mysql-8.0.27-winx64bin>
-
使用命令 net stop xxx 退出 MySQL 服务。其中,xxx 是前面起的 MySQL 服务名。
net stop mysql01
D:mysql-8.0.27-winx64bin>net stop mysql01 mysql01 服务正在停止. mysql01 服务已成功停止。 D:mysql-8.0.27-winx64bin>
【提示】
如果读者非常爱干净,可以在此处将前面注册的 MySQL 服务也一并移除。使用命令 sc delete xxx 即可。其中,xxx 是前面起的 MySQL 服务名。
sc delete mysqlxxx
D:mysql-8.0.27-winx64bin>sc delete mysql01 [SC] DeleteService 成功 D:mysql-8.0.27-winx64bin>
但是,这样做了之后,下次再登录时,需要额外先执行前面的命令 mysqld install xxx 再次安装 MySQL 服务。(此时只需要注册 MySQL 服务,不需要执行 MySQL 初始化。)
-
退出之后,如果需要再次登录,只需要从前面的命令 net start xxx 开始进行即可。示例如下:
D:mysql-8.0.27-winx64bin>net start mysql01 mysql01 服务正在启动 . mysql01 服务已经启动成功。 D:mysql-8.0.27-winx64bin>mysql -u root -p -P3306 Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 8 Server version: 8.0.27 MySQL Community Server - GPL Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>
-
现在,MySQL 免安装版的配置就大功告成了。



