mysql怎么升级版本
杨建荣,竞技世界数据库专家、dbaplus社群联合发起人,腾讯云TVP,Oracle ACE,《Oracle DBA工作笔记》和《MySQL DBA工作笔记》作者;现就职于竞技世界,擅长数据管理、数据...
2024.11.15如果你用“重启mysql服务”作为关键词搜索,可以找到不少匹配的文章。那么我为什么会想到又写一篇呢?如果你在看了别处的文章后仍然有些疑问,那么,也许我的这篇能帮助你解答部分问题。
下面是正文。
我们都不希望重启数据库服务。但偶尔会遇到需要重启的时候。
重启MySQL服务,可以使用操作系统提供的服务重启方法。比如在Linux类系统中使用service 或 systemctl命令来重启。
service mysqld restart# ORsystemctl restart mysqld或者在Windows系统中通过服务管理界面来重启。
那么,操作系统重启MySQL服务是怎么完成的呢?或者,如果我们在做一些实验,安装MySQL时没有安装相应的服务脚本,这时,我们就需要自己来完成这个过程。
MySQL服务的重启,可以分为两个步骤。第一,关闭当前的服务进程。第二,启动服务进程。
要关闭服务进程,有两种方法。
第一种方法是,使用有关闭服务权限的用户,通过客户端建立连接,然后执行 shutdown 命令。
第二种方法是(仅限于Linux系统),向服务进程发送SIGTERM信号。命令如下:
#shellcat /path/to/mysqld.pid | xargs kill -SIGTERM也就是找到当前mysql服务进程的pid,然后向它发送SIGTERM信号。进程在收到了信号后,开始执行和收到了shutdown命令相同的关闭过程。它会先关闭网络连接,然后把未完成的操作执行完,回滚未完成的事务。因此,虽然发送信号的过程很快就会执行完成,但是接收信号后执行关闭的过程则需要花费几秒到几十秒或更长的时间。
网络上可以看到给进程发送的信号为9而不是SIGTERM。信号9为SIGKILL,会立即中止进程,数据库服务进程会存在未完成的操作,在进程再次启动时,会执行修复的过程。据说,这种做法有一定的概率可能会损坏数据文件而导致修复失败。因此,若非别无选择,不要使用SIGKILL来结束数据库服务进程。
启动服务
#shell/path/to/mysqld_safe &至此,基本的命令部分介绍完毕。
有时候,比如我们是在做实验,需要反复或定期重启数据库服务,因此希望把上述过程变成一个可以自动执行的脚本。这其中存在的困难是,如何判定数据库服务进程收到信号后的关闭过程已经完成了?
有两种方法,一种是每隔一段时间在数据库日志文件的结尾处查找表示进程结束的关键词。
tail -5 /path/to/mysql.log | grep -v grep | grep ‘mysqld: Shutdown complete‘另一种是每隔一段时间查找mysql的服务进程,如果找不到,就说明已关闭。
ps -ef | grep -v grep | grep ‘bin/mysqld‘有的朋友可能对“每隔一段时间”该怎么写成脚本有疑问。下面这段代码会持续检查mysqld进程是否存在,如果存在则睡眠5秒后再次检查,直到找不到mysqld进程。
while ps -ef | grep -v grep | grep ‘bin/mysqld‘dosleep 5s done杨建荣,竞技世界数据库专家、dbaplus社群联合发起人,腾讯云TVP,Oracle ACE,《Oracle DBA工作笔记》和《MySQL DBA工作笔记》作者;现就职于竞技世界,擅长数据管理、数据...
2024.11.151、登陆成功后,首先进入某一个数据库 (不是指数据库服务器)use t1; //t1是数据库名如图所示:2、在此数据库中建立数据库表1)、 先建立表结构(可以理解为表的列名,也就是字段名)在实际生产过...
2024.11.15请关注本头条号,每天坚持更新原创干货技术文章。如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习1. 前言本文主要讲解MySQL数据库root账户密码忘记两种处理方法,经过测试可有效解决...
2024.11.15MySQL是一种开源的关系数据库管理系统,它由瑞典MySQL AB开发,该公司在2008年被Sun Microsystems公司收购。MySQL是最流行的关系数据库管理系统之一,MySQL数据库存储结...
2024.11.14本文适合有一定mysql基础的同学参考阅读。我们都知道,mysql最常见的去重方法有两个:使用 distinct 或使用 group by,那它们有什么区别呢?接下来我们通过具体操作来测试一下。1.创...
2024.11.14