Mysql服务器的启动与停止(二)

 更新时间:2006年11月21日 00:00:00   作者:  
三、停止服务器 
    要手工启动服务器,使用MySQLadmin: 

    %mysqladmin shutdown 

    要自动停止服务器,你不需做特别的事情。BSD系统一般通过向进程发一个TERM信号停止服务,它们或者正确应答它或被粗鲁地杀死。mysqld在它收到这个信号时以终止作为应答。对于用mysql.server启动服务器的System V风格的系统,停止进程将用一个stop参数调用该脚本,告诉服务器终止,当然假定你已安装了mysql.server。 

    四、如果你不能连接服务器,如何重新获得对服务器的控制 

    在某些情况下,你可能由于不能连接它而手工重启服务器。当然,这有点矛盾。因为一般你通过连接服务器而手工关掉它,那么这种情况如何会出现。 

    首先,MySQL root口令可以已经设置为你不知道的值,这可能发生在你修改口令时,例如,如果你在输入新口令时偶然键入一个不可见的控制字符。你也可能忘记口令。 

    其次,连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。这可能发生在你的系统运行一个cron任务删除了/tmp下的临时文件。 

    如果你因为丢失套接字文件而不能连接,你可以简单地通过重启服务器重新创建得到它。因为服务器在启动时重新创建它。这里的骗局是你不能用套接字建立连接因为它不见了,你必须建立一个TCP/IP连接,例如,如果服务器主机是pit.snake.net,你可以这样连接: 

    %mysqladmin -p -u root -h pit.snake.net shutdown 

    如果套接字文件被一个cron任务删除,问题将重复出现,除非你修改cron任务或使用一个或使用一个不同的套接字文件,你可以使用全局选项文件指定一个不同的套接字,例如,如果数据目录是/usr/local/var,你可以通过将下列行加入/etc/my.cnf中,将套接字文件移到那里: 

    [mysqld] 
    socket=/usr/local/var/mysql.sock 

    [client] 
    socket=/usr/local/var/mysql.sock 
    对服务器和客户均指定路径名,使得它们都使用同一个套接字文件。如果你只为服务器设置路径,客户程序将仍然期望在原位置执行套接字,在修改后重启服务器,使它在新位置创建套接字。 

    如果你由于忘记root口令或已经将它设置为不同于认为的值而不能连接,你需要重新获得对服务器的控制,是你能再次设置口令: 

    

中断服务器 

    如果你以root登录服务器主机,你可以用kill命令终止服务器。你可以使用ps命令或通过寻找服务器的PID文件(通常在数据目录中)找出服务器进程的ID。 

    最好是首先尝试用一个向服务器发出一个TERM信号的正常kill看它是否将以正常终止应答。这种方式下,表和日志将正确地被清空。如果服务器阻塞并且不应答一个正常终止信号,你可以用kill -9强制终止它。这是最后的手段了,因为这可能有未清空的修改,而且你冒着让表处于一个不一致状态的风险。 

    如果你用kill -9终止服务器,要确保在启动服务器前用myisamchk和isamchk检查你的表。  
    用--skip-grant-table选项重启服务器。 
    这告诉服务器不使用授权表验证连接,这允许你以root连接而无须口令。在你已经连接后,改变root口令。  
    用mysqladmin flush-privileges告诉服务器再次使用授权表启动 
    如果你的mysqladmin版本不认识Flash-privileges,试一试reload。 

    五、运行多个服务器 

    大多数再一台给定的机器上运行单个MySQL服务器,但在很多情况下,运行多个服务器是很有用的: 

    你可能想测试一个服务器的新版本,而保留你正在运行的生产服务器。在这种情况下,你会运行不同的服务器代码。  
    操作系统一般限制每个进程的打开文件句柄数量。如果你的系统很难提高这个限制,运行多个服务器是解决限制的一种方法。在这种情况下,你可能运行统一服务器的多个实例。  
    ISP经常为其客户提供自己的MySQL安装,有必要涉及单独的服务器。在这种情况下,你可能运行同一版本的多个实例或不同版本,如果不同的客户想要不同版本的MySQL。  
    很自然地,运行多个服务器比只运行一个服务器要复杂得多。如果你安装多个版本,你不能在同一个地方安装所有东西。当服务器运行时,某些参数必须或很可能对每个服务器是唯一的,它们包括服务器在哪安装、其数据目录的路径名、TCP/IP端口和UNIX域套接字路径名以及用于运行服务器的UNIX账号(如果你不再同一账号下运行所有服务器)。如果你决定运行多个服务器,一定要注意你使用的参数,是你不至于。

相关文章

  • Mysql下自动删除指定时间以前的记录的操作方法

    Mysql下自动删除指定时间以前的记录的操作方法

    这篇文章主要介绍了MySQL下自动删除指定时间以前的记录的操作方法,需要的朋友可以参考下
    2018-08-08
  • 在Centos7环境安装MySQL超详细教程

    在Centos7环境安装MySQL超详细教程

    MySQL是一种开源的关系型数据库管理系统(RDBMS),它是目前最流行和广泛使用的数据库之一,这篇文章主要给大家介绍了关于在Centos7环境安装MySQL的相关资料,需要的朋友可以参考下
    2023-11-11
  • MySQL外键约束(FOREIGN KEY)的具体使用

    MySQL外键约束(FOREIGN KEY)的具体使用

    MySQL外键约束是表的一个特殊字段,经常与主键约束一起使用,本文主要介绍了MySQL外键约束(FOREIGN KEY)的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • MySQL如何从数据库中删除表中所有数据

    MySQL如何从数据库中删除表中所有数据

    这篇文章主要介绍了MySQL如何从数据库中删除表中所有数据问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • MySQL ClickHouse常用表引擎超详细讲解

    MySQL ClickHouse常用表引擎超详细讲解

    这篇文章主要介绍了MySQL ClickHouse常用表引擎,ClickHouse表引擎中,CollapsingMergeTree和VersionedCollapsingMergeTree都能通过标记位按规则折叠数据,从而达到更新和删除的效果
    2022-11-11
  • MySQL详解进行JDBC编程与增删改查方法

    MySQL详解进行JDBC编程与增删改查方法

    JDBC是指Java数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库。从根本上来说,JDBC 是一种规范,它提供了一套完整的接口,允许便携式访问到底层数据库
    2022-06-06
  • windows server 2008 64位MySQL5.6免安装版本配置方法图解

    windows server 2008 64位MySQL5.6免安装版本配置方法图解

    这篇文章主要介绍了windows server 2008 64位MySQL5.6免安装版本配置方法图解,需要的朋友可以参考下
    2017-08-08
  • mysql本地登录无法使用端口号登录的解决方法

    mysql本地登录无法使用端口号登录的解决方法

    这篇文章主要介绍了mysql本地登录无法使用端口号登录的解决方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • mysql如何判断同一字段是否有重复数据

    mysql如何判断同一字段是否有重复数据

    这篇文章主要介绍了mysql如何判断同一字段是否有重复数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • MySQL中使用流式查询避免数据OOM

    MySQL中使用流式查询避免数据OOM

    这篇文章主要介绍了MySQL中使用流式查询避免数据OOM,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01

最新评论