windows server 下重启 MySQL(服务)
前言
个人配置环境,本地习惯用 xampp ,只需要启动控制面板就可以了,而服务器端由于是 Linux 系统,有一套完备的指令集合很方便启动和关闭,也不需要去操心。这次在 windows server 下对 MySQL 的重启过程,让我对进程和服务有了更深的了解。特意通过 win+R
-> services.msc
打开 windows 服务观察了一下,本地的 xampp 并没有注册服务(Apache,MySQL),而 windows server 上使用的 phpStudy 注册了服务(服务器上安装的 phpStudy 版本可以切换运行方式,是否以服务运行)。本地下载安装最新版本的 phpStudy(与服务器上的版本不同),查看了一下,本地依然未注册服务。猜测集成环境软件本身在安装时,判断了宿主机的类型,根据不同的类型安装了不同的版本。
通过任务管理器切换查看进程和服务(右击进程转到服务或右击服务转到进程)发现,每个服务(正在运行状态)都会有一个对应的进程,但进程不一定有对应的服务。本地的 xampp 在关闭(得关闭对应的模块)之后,进程就没了,而在 Windows server 服务器上,phpStudy 停止后,进程没了,同时,服务状态切换成了已停止。进程跟服务之间存在先后关闭的关系,服务对进程有依赖,需要先关闭服务,再考虑关闭进程(关闭服务会自动关闭对应的进程),所以当你通过任务管理器关闭某个服务对应的进程时,会报错:访问拒绝
或者 没有此任务实例运行
。前者还算正常,后者就不知道怎么搞了,能做的只有重启。
过程
确定使用的 MySQL 版本
因为之前不知道本地与服务器上的相关软件的不同,加上服务器上的环境比较复杂(c 盘和 d 盘都分别安装了 phpStudy,d 盘还单独安装了 MySQL 5.5),搞了一天也没出结果,很头大。因为同时存在多个环境、多个版本的 MySQL, 我需要确定之前使用的 MySQL(多个不同版本的 MySQL,存储方式和存储数据的位置不同,就存在了多个数据库环境)。在 MySQL 存储数据的目录 data 下,找到对应的数据库,发现里面的文件,主要以表名开头,扩展名 frm,MYD,MYI
。记得有新增几张表,猜想有可能存在相对应的文件。全局搜索,并没有。一脸懵逼。此路不通,想只能通过切换 MySQL 版本,然后用 Navicat 连接查看来判断了。
切换 MySQL 版本
因为切换需要关闭现有版本的 MySQL,并且不知道存在服务的进程不能直接关闭,所以在任务管理器里直接结束进程得到 访问拒绝
的回应后,就开始搜索通过其他方式强制关闭进程的方式。
查看进程对应的进程号(当然可以通过 任务管理器 -> 查看 -> 选择列 -> 勾选 PID(进程标识符)
的方式直接查看)
# 查找出某个端口的PID netstat -ano | findstr "3360" # 或根据可执行文件名查找 tasklist | findstr "mysql"
MySQL 对应可执行文件 mysqld.exe
,而 Apache 对应可执行文件 httpd.exe
(我这个版本是这样子的)。
结束进程
因为直接结束进程会报错,当时想的就是怎么样杀死进程,没有考虑为什么报错。
#杀死进程 tskill PID #如果存在这个指令的话 ntsd -c q -p PID #taskkill 指令 taskill /f /pid PID taskkill /f /im 进程名
几乎试错了所有的解决方案,都不行。
尝试关闭 MySQL 服务
既然无法从进程下手,就想着关闭服务,是不是就可以了呢?
注册和删除服务
# 删除服务,MySQL57 为注册服务时的名称 sc delete MySQL57 # mysqld 删除 mysqld --remove MySQL57 # 注册服务,mysql5.6 为注册服务名 mysqld --install mysql5.6 # 指定默认的配置文件 mysqld --install MySQLXY --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"
期间,启动 MySQL 还报错了:1067 进程意外终止
,我的是因为已注册了其他的 MySQL,将其停止即可。
实在不行可以重启,不过要保证,同一个服务,如 MySQL ,只能有一个启动类型为自动。
然后就好了,之后又碰到 iis 服务器启动不了,看了一下,原来是 phpStudy 中的 apache 服务开启了,将其关闭之后重试,启动类型改成手动,或禁用。仍然启动不了 iis, 猜测可能是服务器版本较低,有漏洞或者版本不兼容,重启,OK。
原文地址:https://www.cnblogs.com/haibinqingxie/p/11905386.html
- 37 个你必须知道的现代数据中心术语
- Python读书笔记7
- 2017年人工智能在游戏领域打败人类,未来我们将何去何从?
- 3杂再破市场行情 6位数结拍
- 将永久存储添加到Red Hat CDK Kit 3.0
- ASP.NET MVC的Razor引擎:RazorView
- 三分钟学会 Java 单元测试
- 革了短信的命之后,微信开始把枪口对准了应用市场
- 建构微服务的第一步: 微服务哪里来?
- 最新机器学习必备十大入门算法!都在这里了
- ASP.NET MVC的Razor引擎:IoC在View激活过程中的应用
- 深度学习笔记:深度学习在计算机视觉的应用
- 快速添加永久存储到到Minishift / CDK 3
- 张小龙发布2018微信全新计划(内附演讲全文)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Java Collection Framework : List
- String类的equals方法
- 必须同时重写hashcode和equals方法的原因
- Springboot中使用Redis的发布/订阅模式
- Java 几种排序算法 与时间空间复杂度
- JAVA程序员必须要学会的网络知识
- 计算机网络学习--数据链路层
- 带你快速了解原码、反码、补码,搞定进制转换
- Python语言学习笔记——简介
- 三行代码,OpenCV轻松生成19种色彩风格图像
- Java对象的结构与对象在内存中的结构
- Spring框架源码分析(IoC):Resource、ResourceLoader和容器之间的关系
- Spring框架源码分析(IoC):BeanFactory和ApplicationContext容器家族
- spring框架通过xml以及注解方式注册BeanDefinition的流程全链路分析
- Java后端面试学习知识总结——GC