最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

MySQL安装,启动,运行过程中出现的问题汇总

XAMPP相关 admin 1383浏览 0评论

本文记录MySQL安装,启动,运行过程中出现的问题汇总,持续更新中。

GA0000098

1插件“ InnoDB”注册为存储引擎失败

原因:启动时报错,配置文件修改导致出问题。

解决:停服务,删除那些日志文件,再启动服务。

rm -f /usr/local/mysql/data/ib_logfile*

# 下面的可能也需要删除
rm -f /usr/local/mysql/data/mysql-bin*

2错误1418(HY000):此函数的声明中没有DETERMINISTIC,NO SQL或READS SQL DATA,并且启用了二进制日志记录(您可能要使用不太安全的log_bin_trust_function_creators变量)

解决:在my.cnf配置文件中添加:log_bin_trust_function_creators = 1

3等待表刷新

最近遇到一个案例,很多查询被中断且没有返回结果,使用show processlist查看,发现大量MySQL线程处于等待表刷新状态,查询语句一直被分开,只能通过Kill进程来解决。

原因:

有些时候,是由于引起**lock table t_test read**的双重。但生产环境中,很多时候可能是由于**慢查询**导致冲洗表一直无法关闭该表而一直处于等待状态。

另外,网上有个案例,mysqldump备份时,如果没有使用参数-single-transaction或由于同时使用了flush-logs与-single-transaction两个参数也可能引起这样的等待场景,这个两个参数放在一起,会在开始dump data之前先执行一个FLUSH TABLES操作。

解决:

出现,等待表刷新时,我们一般需要找到那些表被锁住或那些慢查询导致刷新表一直在等待而无法关闭该表。然后杀死掉对应的线程即可,但是如何精准定位是一个挑战,尤其是是生产环境,你使用show processlist会看到大量的线程。让你眼花缭乱的,怎么一下子定位问题呢?

  • 对于慢查询引起的其他线程处于

可以查看show processlist中时间值很大的线程,然后甄别确认后杀掉。有种规律就是这个线程的时间列值必定比被分开的线程要高,这个可以过滤很多记录。

  • 对于锁表t_test读取引起的其他线程处于

对于锁定表t_test读取这种情况,这种会话可能处于睡眠状态,而且它也不会出现在显示引擎innodb status \ G命令的输出信息中。还要显示其中in_use> = 1的打开表;能找到的那张表被锁住了,但是无法定位到特定的线程(连接),其实这个是一个头痛的问题,可以使用MySQL监控利器-Innotop

另外,在官方文档中**ALTER TABLE, RENAME TABLE, REPAIR TABLE, ANALYZE TABLE, OPTIMIZE TABLE**都能引起此类等待。

4主机“ xxx”由于许多连接错误而被阻止;用’mysqladmin flush-hosts’解锁

原因:

同一个ip在短时间内产生太多(超过MySQL数据库max_connect_errors的中断)中断的数据库连接而导致的中断。

说明MySQL已经得到纠正(max_connect_errors)的主机’hostname’的在中途被中断了的连接请求。在max_connect_errors次失败请求后,MySQL意识到出错了(像来自一个黑客的攻击),并且阻止该站点进一步的连接,直到某人执行命令mysqladmin flush-hosts。

解决:

  1. 提高允许的max_connect_errors数量(治标不治本):

    1. 进入MySQL数据库查看max_connect_errors:显示类似’%max_connect_errors%’的变量;
    2. 修改max_connect_errors的数量为1000:设置全局max_connect_errors = 1000;
    3. 查看是否修改成功:显示变量’%max_connect_errors%’;
  2. 使用mysqladmin flush-hosts命令清理一下主机文件(不知道mysqladmin在哪个目录下可以使用命令查找:where mysqladmin)

在查找到的目录下使用命令修改:/ usr / local / mysql / bin / mysqladmin flush-hosts -h10.19.11.33 -P3306 -uroot -p123456

备注:

  • 其中端口号,用户名,密码都可以根据需要来添加和修改。
  • 配置有主/从主从数据库的要把主库和从库都修改一遍的,如果连了多个数据库,则都需要处理。
  • 第2步也可以在数据库中进行,命令如下:

转载请注明:XAMPP中文组官网 » MySQL安装,启动,运行过程中出现的问题汇总

您必须 登录 才能发表评论!