算法|恒讯科技分析:如何解决云服务器上MySQL数据库的常见问题?( 二 )


须藤纳米 /etc/mysql/my.cnf
sudo nano /home/<用户>/.my.cnf
通过向下滚动到 [client
和 [mysqld_safe
设置 , 我们会发现类似于此处示例的内容 。
[mysqld

#
# * 基本设置
#
用户 = mysql
pid-file = /var/run/mysqld/mysqld.pid
套接字=/var/run/mysqld/mysqld.sock
端口= 3306
basedir = /usr
数据目录 = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
跳过外部锁定
#
# 而不是跳过网络现在默认是只听
# localhost 哪个更兼容并且安全性更高 。
绑定地址 = 127.0.0.1
对于 CentOS 和其他 Red Hat , 主要配置文件存储在略有不同的位置 , 打开它进行检查
sudo vi /etc/my.cnf
[mysqld

数据目录=/var/lib/mysql
套接字=/var/lib/mysql/mysql.sock
这里需要密切注意的行是“socket”、“datadir”和“bind-address” 。 上例中的参数采用默认值 , 在大多数情况下 , 我们的配置看起来是一样的 。 确保设置指向正确的目录 , 以便 MySQL 可以实际找到所需的文件 。 检查“datadir”的最简单方法是使用下面的命令
sudo ls -l /var/lib/mysql/
输出将列出该目录中的所有文件 , 它应该至少包含以下内容以及您创建的任何数据库 。
drwx------ 2 mysql root 4096 Aug 5 12:23 mysql
drwx------ 2 mysql mysql 4096 Aug 5 12:29 performance_schema
如果数据目录或套接字已被移动并且 MySQL 不知道它们在哪里 , 请修复配置文件以指向正确的目录 。 您可以使用以下命令搜索文件夹 。
sudo find / -name performance_schema && sudo find / -name mysql.sock
我们需要检查的第三个参数是绑定地址 , 只有当我们的数据库需要远程访问时才真正相关 。 在Debian和Ubuntu安装中 , 绑定默认设置为环回地址 , 这可以防止从本地主机外部调用数据库 。 CentOS 没有相同的参数 , 除非手动设置 。 对于我们的Web服务位于与数据库不同的服务器上的任何设置 , 此绑定地址应设置为服务器自己的私有IP 。
三、检查错误日志
如果配置看起来正确并且服务正在运行 , 但您的网站仍未按预期加载 , 请尝试检查日志中是否有任何提示可能是什么原因 。
Debian和Ubuntu服务器将错误日志存储到 /var/log/mysql/error.log 。 我们可以使用“less”来阅读日志 , 但这可能不是很方便 , 因为日志中包含的不仅仅是严重错误 。 相反 , 使用“grep”搜索日志 。
sudo grep -i 错误 /var/log/mysql/error.log
如果我们在最近的日志中找不到任何内容 , 请同时检查存档的日志 。 为此 , 请使用“zgrep”和与常规“grep”相同的命令
须藤 zgrep -i 错误 /var/log/mysql/error.log.1.gz
由于CentOS下的数据库命名为MariaDB而不是MySQL , 所以日志也以不同的名称保存 。 您可以使用以下命令搜索日志 。
sudo grep -i 错误 /var/log/mariadb/mariadb.log
Debian 系统还将 MySQL 事件报告到 /var/log/syslog , 以过滤掉其他所有内容 , 使用“grep”和两个由 .* 分隔的关键字来表达“和” , 就像下面的命令一样 。
sudo grep -i -E 'mysql.*error' /var/log/syslog
如果我们找不到任何有用的东西 , 请尝试不同的关键字 , 例如“开始”以查看服务上次重新启动的时间 , 或“失败”以查找可能不会报告为错误的任何不太重要的问题 。
以上是解决云服务器上MySQL数据库的常见问题 。 希望能帮助到熬大家参考!