在Windows上手动装配MySQL,绿色运行和注册成Windows服务

作者:V君 发布于:2020-5-21 18:04 Thursday 分类:应用软件

前言:在网上 MySQL 的安装、配置教程遍地都是,但似乎没有把多种姿势的放一块儿的,那就把自己整理的文档发表出来吧!(也方便以后自己翻查←这才是主要目的

这次依然从 TL; DR开始

  1. 下载 MySQL 的 zip 包
  2. 解压、试运行检查依赖
  3. 撰写配置文件、初始化数据库目录、绿色运行
  4. 将 MySQL 实例注册成 Windows 服务
  5. 配置 root 远程访问权限

列完 TL;DR 之后就是展开每一步了

  1. 下载 MySQL 的 zip 包

MySQL 的 zip 包官方下载地址为:https://dev.mysql.com/downloads/mysql/。 本文在撰写时版本为 8.0.20

  1. 解压、试运行检查依赖

本例解压到的目录为 Z:\My_\Home ,解压之后首先尝试双击 bin 目录中的 mysql.exe 看看有没有弹出缺少DLL的提示。若缺少依赖可能会弹出 VCRUNTIMExxx.dll,这就需要去找对应的 redist 安装才能解决。

  1. 撰写配置文件、初始化数据库目录、绿色运行

现在可以以多种姿势来使用 MySQL 了,分别是单实例、多实例;绿色、服务,横竖各切一刀分成4种。单实例顾名思义就是把数据放进 MySQL 主目录,使其能够方便移动。多实例就有点像微软 SqlServer,用不同的参数指定数据目录,启动多个进程来实现。绿色就是可以放进U盘,双击就能启动。服务则是注册成 Windows 服务,能够让其随着系统开机而启动。

让我们从单实例绿色开始吧。在 Home 旁边新建一个文件夹,本例 GreenSingleton 完整路径为 Z:\My_\GreenSingleton。然后把刚才解压到 Home 的东西复制过去。打开命令提示符导航到这里,执行

bin\mysqld.exe --initialize-insecure --default_authentication_plugin=mysql_native_password

然后 data 目录就出来了,用户名 root 密码为空。接下来是启动服务端,就地执行

bin\mysqld.exe --port=3307 --bind-address=127.0.0.1

其中和绑定地址是可选的,它们都有默认值。执行起来之后不会有任何输出,服务端已经在运行了,我们可以用管理工具连接到上面去开始使用。最后就是停止服务端了,打开一个新的命令提示符,执行

bin\mysqladmin.exe -u root shutdown

就能安全地停止服务端。如果有密码则需要加上 -p 参数来输入密码,如果服务端指定了端口可以用 --port=3307 参数指定,如果服务端不在本机可以用 --host==127.0.0.1 来远程连接。可以把这两个命令存到 bat 文件来方便执行,但要注意执行目录。

接下来是绿色多实例。让我们回到 Z:\My_ ,现在已经和单例绿色没关系了,把它放置到一边 XD。创建第一个实例目录,本例第一个实例目录为 Inst-1 完整路径 Z:\My_\Inst-1 ,在里面创建 my.ini 用 Notepad++ 之类的文本编辑器打开,系统自带的记事本会追加 BOM 头,会使服务端无法启动。本例第一个实例的配置文件:

[mysqld]
bind-address=0.0.0.0
# 设置3306端口
port=3306
#skip-name-resolve
# 设置mysql数据库的数据的存放目录
datadir=Z:\My_\Inst-1\Data
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password

接下来是初始化数据目录,回到命令提示符,执行

bin\mysqld.exe --defaults-file=Z:\My_\Inst-1\my.ini --initialize-insecure

然后启动服务端,在命令提示符执行

bin\mysqld.exe --defaults-file=Z:\My_\Inst-1\my.ini

停止服务和单实例一样,若要创建第二个实例,只需要复制一份配置文件,修改配置中的路径和命令行参数的路径就可以了。

  1. 将 MySQL 实例注册成 Windows 服务

执行以下命令就能在服务管理器中刷出,可以设置开机启动了。

bin\mysqld.exe --install MySqlInst-1 --defaults-file=Z:\My_\Inst-1\my.ini

要移除服务则执行以下命令。

sc delete MySqlInst-1

  1. 配置 root 远程访问权限

使用管理工具或者命令行客户端执行以下 SQL 语句

CREATE USER 'root'@'%' IDENTIFIED BY 'foobar';
GRANT ALL ON *.* TO 'root'@'%';

若需环境中没有管理工具,则可以使用 MySQL 自带的命令行客户端,以下常见的用法。

bin\mysql --port=3306 --user=root
bin\mysql --port=3307 --user=root -p
bin\mysql --port=3308 --user=root -p --host=127.0.0.1

总算是整理完了,有点累

标签: 软件开发 个人服务器

评论(0) 引用(0) 浏览(564)

Powered by emlog 去你妹的备案 sitemap