本节提供了启动服务器的问题的故障排除建议。有关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.
。(默认MySQL端口号为3306.)然后按几次输入。如果您没有收到错误消息your_host_name.
tcp_ip_port_number.
Telnet:无法连接到远程主机:连接拒绝
,其他一些程序正在使用TCP / IP端口mysqld.正在尝试使用。追踪该程序的内容并禁用它,或告诉mysqld.听取不同的港口- 港口
选项。在这种情况下,在使用TCP / IP连接到服务器时,请为客户端程序指定相同的非默认端口号。港口可能无法访问的另一个原因是您有一个防火墙运行,可以阻止与它的连接。如果是,请修改防火墙设置以允许访问端口。
如果服务器启动但无法连接到它,请确保您有一个条目
/ etc / hosts
看起来像这样:127.0.0.1 localhost.