如何解决云服务器上MySQL数据库的常见

有地方能治好白癜风吗 https://wapyyk.39.net/bj/zhuanke/89ac7.html

互联网上的很大一部分内容都存储在数据库中,MySQL是一种流行的选择。但是,如果我们的动态内容突然无法加载,或者当我们返回我的网站时,会看到一个几乎空白的白页,上面有消息“建立数据库连接时出错”。那么我们应该如何解决云服务器上MySQL数据库的常见问题?

如何解决云服务器上MySQL数据库的常见

下面内容是在帮助大家对云服务器上的MySQL数据库进行故障排除,按照此处列出的步骤,大家将有望恢复数据库功能。

一、检查服务是否正在运行

如果我们的网站无法连接到您的数据库,则该服务可能根本没有在监听。检查我们的MySQL状态,在Ubuntu和Debian系统上,这可以使用以下命令完成。

sudo服务mysql状态

CentOS和其他RedHat变体也使用MySQL,但它被命名为MariaDB,因此请改用此命令。

sudo服务mariadb状态

CentOS和Debian上的状态检查输出将显示与下面CentOS示例类似的内容,Debian输出几乎相同,只是服务名称不同。

mariadb.service-MariaDB数据库服务器

已加载:已加载(/usr/lib/systemd/system/mariadb.service;已启用)

活动:活动(运行)自周三-08-:53:38EEST;3小时23分钟前

主PID:(mysqld_safe)

C组:/system.slice/mariadb.service

├─/bin/sh/usr/bin/mysqld_safe--basedir=/usr

└─/usr/libexec/mysqld--basedir=/usr--datadir=/var/lib/mysql...

打印输出相当冗长,但重要的部分通常是彩色的,以便更好地突出。绿色的“活动(运行)”表示服务应该正常运行,如果相反,它表示“活动(退出)”或“非活动(死)”,则该进程已停止或终止。

Ubuntu将相同的信息压缩到一行,就像下面的示例输出一样。

mysql启动/运行,进程

如果我们的服务状态不是“正在运行”,请尝试使用与以前相同的服务命令重新启动进程,但使用“重新启动”而不是“状态”。

sudo服务mysql重新启动

sudo服务mariadb重新启动

如果数据库服务重新启动而没有遇到错误,我们可以尝试使用以下命令连接到它,出现提示时输入根密码。

mysql-uroot-p

如果我们看到“欢迎使用MySQL/MariaDB监视器”,则连接成功并且数据库服务正在运行。相反,如果我们收到如下例所示的错误,可能输入了错误的root用户密码。再试一次,或者如果我们不确定root密码,只需将root替换为其他用户名,即可使用我们有权访问的另一个用户帐户登录。

错误():用户root

localhost的访问被拒绝(使用密码:YES)

如果我们的数据库设置在与Web主机不同的服务器上,请确保两台服务器可以相互访问。我们可以使用正确的安装用户名使用下面的命令从我们的Web服务器测试数据库连接。

mysql-u用户名-p-h数据库服务器私有IP

二、检查配置

当MySQL正在运行但您的网站仍未正常加载时,或者当我们尝试手动连接到数据库时收到如下错误消息,您应该查看服务配置。

错误:无法通过套接字“/tmp/mysql.sock”连接到本地MySQL服务器()

在Debian和Ubuntu服务器上,MySQL的配置文件通常保存在/etc/mysql/。也可以将特定于用户的设置存储在/home/user/.my.cnf中,这将覆盖全局配置。检查是否设置了任何用户级别覆盖。通常建议为不同的Web应用程序使用单独的用户名,因此至少检查那些与我们的页面加载问题相关的用户名。我们可以使用以下两个命令中的第一个打开全局配置文件,并通过将user替换为数据库用户名来使用后者打开特定于用户的配置文件。

须藤纳米/etc/mysql/my.cnf

sudonano/home/用户/.my.cnf

通过向下滚动到[client]和[mysqld_safe]设置,我们会发现类似于此处示例的内容。

[mysqld]

#

#*基本设置

#

用户=mysql

pid-file=/var/run/mysqld/mysqld.pid

套接字=/var/run/mysqld/mysqld.sock

端口=

basedir=/usr

数据目录=/var/lib/mysql

tmpdir=/tmp

lc-messages-dir=/usr/share/mysql

跳过外部锁定

#

#而不是跳过网络现在默认是只听

#localhost哪个更兼容并且安全性更高。

绑定地址=.0.0.1

对于CentOS和其他RedHat,主要配置文件存储在略有不同的位置,打开它进行检查

sudovi/etc/my.cnf

[mysqld]

数据目录=/var/lib/mysql

套接字=/var/lib/mysql/mysql.sock

这里需要密切注意的行是“socket”、“datadir”和“bind-address”。上例中的参数采用默认值,在大多数情况下,我们的配置看起来是一样的。确保设置指向正确的目录,以便MySQL可以实际找到所需的文件。检查“datadir”的最简单方法是使用下面的命令

sudols-l/var/lib/mysql/

输出将列出该目录中的所有文件,它应该至少包含以下内容以及您创建的任何数据库。

drwx------2mysqlrootAug:23mysql

drwx------2mysqlmysqlAug:29performance_schema

如果数据目录或套接字已被移动并且MySQL不知道它们在哪里,请修复配置文件以指向正确的目录。您可以使用以下命令搜索文件夹。

sudofind/-nameperformance_schemasudofind/-namemysql.sock

我们需要检查的第三个参数是绑定地址,只有当我们的数据库需要远程访问时才真正相关。在Debian和Ubuntu安装中,绑定默认设置为环回地址,这可以防止从本地主机外部调用数据库。CentOS没有相同的参数,除非手动设置。对于我们的Web服务位于与数据库不同的服务器上的任何设置,此绑定地址应设置为服务器自己的私有IP。

三、检查错误日志

如果配置看起来正确并且服务正在运行,但您的网站仍未按预期加载,请尝试检查日志中是否有任何提示可能是什么原因。

Debian和Ubuntu服务器将错误日志存储到/var/log/mysql/error.log。我们可以使用“less”来阅读日志,但这可能不是很方便,因为日志中包含的不仅仅是严重错误。相反,使用“grep”搜索日志。

sudogrep-i错误/var/log/mysql/error.log

如果我们在最近的日志中找不到任何内容,请同时检查存档的日志。为此,请使用“zgrep”和与常规“grep”相同的命令

须藤zgrep-i错误/var/log/mysql/error.log.1.gz

由于CentOS下的数据库命名为MariaDB而不是MySQL,所以日志也以不同的名称保存。您可以使用以下命令搜索日志。

sudogrep-i错误/var/log/mariadb/mariadb.log

Debian系统还将MySQL事件报告到/var/log/syslog,以过滤掉其他所有内容,使用“grep”和两个由.*的关键字来表达“和”,就像下面的命令一样。

sudogrep-i-Emysql.*error/var/log/syslog

如果我们找不到任何有用的东西,请尝试不同的关键字,例如“开始”以查看服务上次重新启动的时间,或“失败”以查找可能不会报告为错误的任何不太重要的问题。

以上是解决云服务器上MySQL数据库的常见问题。希望能帮助到熬大家参考!




转载请注明:http://www.xcqg58.com/jbjj/jbjj/26847489.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了