3.2.1启动MySQL Server的问题故障排除问题

本节提供了启动服务器的问题的故障排除建议。有关Windows系统的其他建议,请参阅故障排除Microsoft Windows MySQL Server安装

如果您有启动服务器的问题,则以下是一些要尝试的东西:

  • 检查错误日志要查看为什么服务器无法启动。日志文件位于数据目录(通常C:\ Program Files \ MySQL \ MySQL Server 8.0 \ Data在窗户上,/ usr / local / mysql / data对于UNIX / Linux二进制分发,和/ usr / local / var对于UNIX / Linux源分发)。查看具有表单名称的文件的数据目录主机名。呃主机名。日志, 在哪里主机名是服务器主机的名称。然后检查这些文件的最后几行。用尾巴要显示它们:

    壳牌>尾巴主机名.Err shell>尾巴主机名。日志
  • 指定您使用的存储引擎所需的任何特殊选项。你可以创建一个我.CNF.文件并为您计划使用的引擎指定启动选项。如果您要使用支持交易表的存储引擎(Innodb.NDB.),确保您在启动服务器之前配置了您想要的方式。如果您正在使用Innodb.表,参见InnoDB配置对于指导方针和来说InnoDB启动选项和系统变量有关选项语法。

    尽管存储引擎使用默认值进行省略的选项,但Oracle建议您查看可用选项,并为任何默认值不适合安装的任何选项指定显式值。

  • 确保服务器知道在哪里可以找到数据目录。这mysqld.服务器使用此目录作为当前目录。这是它期望找到数据库的地方以及它期望编写日志文件的地方。服务器还将PID(进程ID)文件写入数据目录中。

    编译服务器时,默认数据目录位置是硬编码的。要确定默认路径设置,请调用默认路径设置mysqld.与之- 韦尔斯- 帮助选项。如果数据目录位于系统上的其他位置,请使用该数据目录位于其他位置,使用该位置指定该位置--datadir.选择mysqld.或者mysqld_safe.,在命令行或选项文件中。否则,服务器无法正常工作。作为替代品--datadir.选项,您可以指定mysqld.使用MySQL的基本目录的位置- 巴西尔, 和mysqld.寻找数据目录在那里。

    检查指定路径选项的效果,调用mysqld.随后有这些选择- 韦尔斯- 帮助选项。例如,如果将位置更改为目录的位置mysqld.已安装然后运行以下命令,它显示使用基本目录启动服务器的效果/ usr / local

    shell> ./mysqld --basedir = / usr / local --verbose --help

    您可以指定其他选项,例如--datadir.也是- 韦尔斯- 帮助必须是最后一个选择。

    确定所需的路径设置后,请在没有的情况下启动服务器- 韦尔斯- 帮助

    如果mysqld.目前正在运行,您可以通过执行此命令了解它使用的路径设置:

    shell> mysqladmin变量

    或者:

    shell> mysqladmin -h主机名变量

    主机名是MySQL Server主机的名称。

  • 确保服务器可以访问数据目录。数据目录及其内容的所有权和权限必须允许服务器读取和修改它们。

    如果你得到错误13.(意思是没有权限)开始时mysqld.,这意味着数据目录或其内容的权限不允许服务器访问权限。在这种情况下,您更改所涉及的文件和目录的权限,以便服务器有权使用它们。您还可以启动服务器,但这提出了安全问题,应该避免。

    将位置更改为数据目录并检查数据目录的所有权及其内容,以确保服务器访问。例如,如果数据目录是/ usr / local / mysql / var,使用此命令:

    shell> ls -la / usr / local / mysql / var

    如果数据目录或其文件或子目录不受用于运行服务器的登录帐户,则将其所有权更改为该帐户。如果帐户被命名mysql.,使用这些命令:

    shell> chown -r mysql / usr / local / mysql / var shell> chgrp -r mysql / usr / local / mysql / var

    即使具有正确的所有权,MySQL也可能无法启动,如果您的系统上运行其他安全软件,则管理应用程序访问文件系统的各个部分的应用程序。在这种情况下,重新配置该软件以启用mysqld.访问在正常操作期间使用的目录。

  • 验证网络接口服务器想要使用。

    如果发生以下任一误差,则意味着其他一些程序(也许是另一个程序mysqld.服务器)使用TCP / IP端口或UNIX套接字文件mysqld.正在尝试使用:

    无法启动服务器:在TCP / IP端口上绑定:已使用的地址无法启动服务器:绑定UNIX套接字...

    PS.确定你是否有另一个mysqld.服务器运行。如果是这样,请在开始之前关闭服务器mysqld.再次。(如果另一台服务器正在运行,并且您真的想运行多个服务器,您可以找到有关如何执行此操作的信息在一台机器上运行多个MySQL实例。)

    如果没有其他服务器正在运行,请执行命令telnet.your_host_name.tcp_ip_port_number.。(默认MySQL端口号为3306.)然后按几次输入。如果您没有收到错误消息Telnet:无法连接到远程主机:连接拒绝,其他一些程序正在使用TCP / IP端口mysqld.正在尝试使用。追踪该程序的内容并禁用它,或告诉mysqld.听取不同的港口- 港口选项。在这种情况下,在使用TCP / IP连接到服务器时,请为客户端程序指定相同的非默认端口号。

    港口可能无​​法访问的另一个原因是您有一个防火墙运行,可以阻止与它的连接。如果是,请修改防火墙设置以允许访问端口。

    如果服务器启动但无法连接到它,请确保您有一个条目/ etc / hosts看起来像这样:

    127.0.0.1 localhost.
  • 如果你无法得到mysqld.要启动,请尝试使用跟踪文件来查找问题--debug.选项。看dbug套餐