OpenSuSE下MySQL遇到的BUG与修复

本人最近打算研究一下Kbengine服务器,于是git clone一份源码到电脑上开始研究。这个过程中遇到了一些BUG,基本都是MySQL的BUG。一些基本的BUG,比如说缺少某些库或某些依赖程序的我就不赘述了,这篇文章只说一些实实在在的BUG。

系统环境

OS

OpenSuSE 15.0

MySQL

MySQL Community Server 8.0

Project

Kbengine

1: mysql/udf_registration_types.h

error详情

In file included from /usr/include/mysql/mysql.h:81:0,
                 from db_interface_mysql.h:14,
                 from db_exception.cpp:4:
/usr/include/mysql/mysql_com.h:1011:10: fatal error: mysql/udf_registration_types.h: No such file or directory
 #include <mysql/udf_registration_types.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

处理方法

只需要将’/usr/include/mysql/mysql_com.h’这个头文件的第1011行代码的#include方式由<>改成""。修改之后的这行代码是:

#include "mysql/udf_registration_types.h"

原因剖析

由于C/C++里#include <header> 方式,编译器在编译时只会去编译器指定的类库目录下寻找header这个头文件,找不到就会报错。
而#include "header"方式,编译器会先去当前项目目录下寻找header头文件,找不到的话再去编译器指定的类库目录下寻找。
‘mysql/udf_registration_types.h’这个头文件是在’/usr/include/mysql/mysql’下,即项目目录下,所以以#include “header” 方式来包含这个头文件就修复了所遇到的BUG。

2: ERROR 1045 (28000)

error详情

安装mysql后第一次登录遇到这样的错误。

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
//或者
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

处理方法

打开mysql的配置文件

vim /etc/my.cnf

找到log-erro这个变量的路径。
我的是:‘log-error=/var/log/mysql/mysqld.log’

sudo vim /var/log/mysql/mysqld.log

找到这个日志中关于password的这条记录,一般在日志最开始的地方。
我的是:2018-10-20T02:55:07.272961Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 1N/eB7lc#Ihj
最后这个字符串就是安装完MySQL后的初始密码。
在MySQL 服务已经启动的情况下:

mysql -u root -p

然后输入上边找到的初始密码就能成功登录MySQL了。

原因剖析

出于安全考虑,MySQL安装后会初始一个随机密码。我们只需要找到MySQL的日志,找到这个密码就可以用它来登录了。
当然你也可以使用网上的安全模式来暴力来解决,自行百度。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值