
描述
作为MySQL DBA在日常运维中,绝大多数平台都是Linux系统,但也会有极少数情况一些客户的MySQL跑在Windows平台上:有单实例,有主从,甚至有MGR架构。本文章将介绍Windows下运维MySQL时的一些注意事项和常用命令。
Windows下MySQL运维简述:
在windows中,MySQL会以服务的形式出现,通常我们在登录一台windows平台的MySQL数据库中,定位MySQL的服务名很重要,尤其是在不知道MySQL配置文件my.ini位置,也不知道MySQL路径的情况下,服务名是如何关闭和开启MySQL的关键。
- 确定MySQL的服务名
Windows下默认安装后,MySQL的服务名为MySQL,MariaDB的服务名为MariaDB,但是如果用户自定义服务名后,就需要查询一下,通常客户也会起一个有代表性的名字。
windows下查询MySQL服务名:(cmd命令行下使用net start命令加过滤关键字来查询MySQL服务)
C:\Windows\System32>net start | findstr /i mysql
MySQL80
说明:本列中通过findstr过滤关键字,其中 “/i” 的意思是忽略大小写
PS C:\Users\rock> net start | findstr /i mariadb
MariaDB
MariaDB2
也可以通过windows图形界面中的 “服务”来查看MySQL的服务名信息

在服务菜单中,还可以右键点击服务名功能,可以操作MySQL的启动,关闭,重启,和属性信息,查看MySQL启动的具体参数和配置文件地址:


- 启动关闭MySQL服务
通过步骤1中的命令,可以查询到MySQL服务名后,就可以对MySQL在命令行中启动和关闭:
C:\Windows\System32> net start | findstr /i mysql
MySQL80
C:\Windows\System32> net stop mysql80
MySQL80 服务正在停止.
MySQL80 服务已成功停止。
C:\Windows\System32> net start MySQL80
MySQL80 服务正在启动 .
MySQL80 服务已经启动成功。
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -uroot -p'mypassword' -P3306
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 8.0.31 MySQL Community Server - GPL
Copyright (c) 2000, 2022, 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服务
在windows平台中,如果选择解压方式安装MySQL,在完成安装后,需要进行MySQL服务的创建。
Windows平台MySQL解压方式安装和Linux相同:
mysqld --initialize 或者 mysqld --initialize-insecure

安装完成后,需要创建MySQL服务,以后通过服务的方式来管理MySQL实例
C:\Program Files\MySQL\MySQL Server 8.0\bin> mysqld.exe --install MySQL3306 --defaults-file=C:\my.ini
Service successfully installed.
注意:这里如果需要制定配置文件,一定要放在 --install 参数的后面,否则会报错,也就是说 --install放在第一个位置。
- 启动关闭和删除MySQL服务
C:\Program Files\MySQL\MySQL Server 8.0\bin>net stop mysql80
MySQL80 服务正在停止.
MySQL80 服务已成功停止。
C:\Program Files\MySQL\MySQL Server 8.0\bin>net start mysql80
MySQL80 服务正在启动 .
MySQL80 服务已经启动成功。
C:\Program Files\MySQL\MySQL Server 8.0\bin>sc stop mysql80
SERVICE_NAME: mysql80
TYPE : 10 WIN32_OWN_PROCESS
STATE : 3 STOP_PENDING
(STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x1
WAIT_HINT : 0x5265c00
C:\Program Files\MySQL\MySQL Server 8.0\bin>sc start mysql80
SERVICE_NAME: mysql80
TYPE : 10 WIN32_OWN_PROCESS
STATE : 2 START_PENDING
(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x3
WAIT_HINT : 0x3a98
PID : 25744
FLAGS :
说明:在启动和关闭MySQL服务时,可以使用sc start/stop mysql80 也可以使用 net start/stop mysql80
这两个命令在此无差别。
删除MySQL服务:
C:\Program Files\MySQL\MySQL Server 8.0\bin>sc delete mysql80
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld.exe --remove MySQL80
使用sc delete 命令或者 mysqld.exe --remove <服务名> 的方式
注意事项
1. 关于路径中含有空格
在cmd中路径如果含有命令行,命令可能不会被正常执行,windows cmd下无法识别路径中的空格,需要把路径用双引号扩起来: defaults-file=“D:\Program Files\MariaDB 10.4\data\my.ini”
2. 关于斜杠和反斜杠
Windows斜杠和反斜杠在路径中其实都可以使用
/ :支持linux系统和Windows系统下的路径间隔;
\ :仅支持Windows系统下的路径间隔,在linux系统下该符号作为命令行的强制换行符号。
3. 关于命令行权限
在Windows cmd命令行下,需要在打开cmd的时候,右键“以管理员身份运行” 否则会报权限错误。
C:\Windows\System32>net stop mysql80
发生系统错误 5。
拒绝访问。
参考文档
https://dev.mysql.com/doc/refman/5.7/en/windows-installation.html
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




