mysql8.0二进制安装遇到的问题
公司新项目需要用CentOS8.0以上的系统和mysql8.0;于是在虚拟机上开始操作测试;
一实验环境
1、系统版本:CentOS8.3
2、数据库版本:mysql-8.0.23
3、数据库下载链接:https://dev.mysql.com/downloads/mysql/

二、遇到的问题
这里不讲安装过程,之前博客有写只不过用的是mysql5.7,安装过程是一样的;直接说问题;
当解压完mysql8.0压缩包后,配置完环境变量后就可以直接执行mysql -V命令去测试环境变量是否成功;但是执行mysql -V命令报错了,报错信息如下:
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
当看到这个信息的时候我初步判断是因为我没有对数据库做初始化,导致没有加载libtinfo.so.5这个公共库;于是我接着初始化了mysql,并且mysql成功启动,但是当我再次执行mysql命令的时候,依然是之前的报错;于是我find / -name libtinfo.so.5这个模块,发现确实没有,就又执行了yum install libtinfo.so.5 -y来安装该模块;安装完成之后成功的在/usr/lib/目录下找到了该模块,以为问题解决了,但是当再一次执行mysql命令的时候发现仍然是之前的报错;
于是,开始思考它到底在找哪个目录没有找到,因为lib目录有两个lib和lib64,于是我将/usr/lib/目录下的libtinfo.so.5做了个软连接到/usr/lib64目录下(ln -s /usr/lib/libtinfo.so.5 /usr/lib64/libtinfo.so.5),再次执行mysql命令发现报错信息并非原来的那个No such file or directory了,报错信息如下:
mysql: error while loading shared libraries: libtinfo.so.5: wrong ELF class: ELFCLASS32
由此报错可以判断,mysql确实是找的lib64目录中的libtinfo.so.5;又百度了下“ELFCLASS32”,表示调用的so文件是32位的;既然32位的不对,那么就需要一个64位的so文件,于是我在lib64目录下执行了以下命令:
[root@slave lib64]# ll libtinfo*
lrwxrwxrwx. 1 root root 15 5月 11 2019 libtinfo.so.6 -> libtinfo.so.6.1
-rwxr-xr-x. 1 root root 208616 5月 11 2019 libtinfo.so.6.1
发现有关于libtinfo.so的模块,于是抱着尝试的心态在lib64目录下面又做了一个软连接:
[root@slave lib64]# ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
[root@slave lib64]# ll libtinfo*
lrwxrwxrwx 1 root root 24 3月 4 17:33 libtinfo.so.5 -> /usr/lib64/libtinfo.so.6
lrwxrwxrwx. 1 root root 15 5月 11 2019 libtinfo.so.6 -> libtinfo.so.6.1
-rwxr-xr-x. 1 root root 208616 5月 11 2019 libtinfo.so.6.1
然后再次执行mysql命令,执行成功了;问题解决;
后续我又将/usr/lib64下面的软连接libtinfo.so.5删除,将其软链接到了/lib64目录下,发现也是可以的;所以又学习了这几个目录的关系,总结下来就是:/lib64是内核级的,/usr/lib64是系统级的,/usr/local/lib64是用户级的;
三、工作中遇到的一些关于mysql问题的整理
1、客户反馈接口调用无响应
客户反馈他们有个产品调用我们的接口没有响应,由于产品是部署在客户侧设备的,我没有登录权限,只能远程指导客户去排查,起初根据客户描述接口没有响应,就用curl命令发起了一次POST请求,这里data数据是错误的,返回了400状态码,这表示接口是有响应的;因为服务在内网环境下,外面又接了负载均衡,怀疑是负载均衡是不是有什么安全限制给拦截了,于是让客户直接在部署服务的设备上直接用curl命令调用以127.0.0.1为ip的接口,这时候data数据依然是错误的,返回的还是400状态码,这时候也排除了安全限制的问题,查看程序后台日志,也是有返回的,提示参数错误,本身data数据就是有问题的,所以这也是意料之中的事情;
为什么要用错误的data数据来发起POST请求呢,这个解释下,因为客户反馈的问题是调用接口无响应,用错误的data数据只是为了节省时间,初步判断下接口是否给响应;这步工作做完后还是没有定位到问题,于是让客户找了一条正确的data数据用curl命令发起了一次真实的POST请求,发现接口果真没有响应,一直是请求等待中;因为这条接口返回的数据是从mysql库里拿的,接口不返回数据也就意味着数据库没有返回,于是让客户看了3306端口也是起的;又让客户看了mysql所在的设备的磁盘容量,结果发现问题了,mysql的data目录挂载的磁盘使用率100%了,让客户清理了一些无用数据之后,空间释放,再去测试接口,接口响应正常;
有问题后续还会更新。。。。。。。。。。。。。
mysql8.0二进制安装遇到的问题的更多相关文章
- MySql-8.0.12 安装教程
MySql-8.0.12 安装教程随笔https://www.cnblogs.com/CrazyDemo/p/9409995.html MySQL 安装https://m.runoob.com/mys ...
- 【MySQL-123】MySQL8.0.12 安装于Win10
参考blog:MySQL8.0.12 安装及配置 [坑一]输入net start mysql时,MYSQL服务无法启动. 问题:第三步my.ini文件编码错误. 解决方案:https://blog.c ...
- Apache2.4.34 + php 7.28 + MySQL8.0.12 安装及配置
服务端的学习 Apache2.4.34 的安装及配置 1.基本安装 最新的 Apache 已经不提供 Windows 的安装版本,所以我们这里使用的是解压版 -下载地址:https://www.apa ...
- mysql8.0.13安装、使用教程图解
mysql8.0.13安装.使用教程图解 MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Manageme ...
- 01. MySQL8.0 MAC-OS-X安装
目录 MySQL8.0 MAC-OS-X安装 8.0较与5.7变化 下载 安装 启动 登录查看数据库 安装后mysql文件分布 MySQL8.0 MAC-OS-X安装 换mac啦,搭建开发环境,安装m ...
- MySQL8.0 下载安装启动(Windows10)
2019年6月13日20:13:21 MySQL8.0 下载安装启动(Windows10) 下载 下载地址:https://dev.mysql.com/downloads/mysql/8.0.html ...
- Windows系统MySQL8.0的安装教程
MySQL推出的8.0版本亮点多多,尤其是两倍的提速更让我们迫不及待地安装一睹为快.然而目前我们所用的版本还在5.7之前,今天小编给家分享一下MySQL8.0的安装,尤其是多版本MySQL的共存. 方 ...
- (Win10)Java,Maven,Tomcat8.0,Mysql8.0.15安装与环境配置,以及IDEA2019.3使用JDBC连接MySQL、创建JavaEE项目
之前用windows+linux的双系统,最近不怎么舒服就把双系统给卸了,没想到除了问题,导致有linux残余,于是就一狠心重装了电脑,又把Java及其相关的一些东西重新装了回来,还好当初存了网盘链接 ...
- MySQL8.0.20安装教程,MySQL8.0.20安装详细图文教程
1.下载链接如下: MySQL8.0.20版本 https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-20.html 其他版本:MySQL8 ...
随机推荐
- python二分法、牛顿法求根
二分法求根 思路:对于一个连续函数,左值f(a)*右值f(b)如果<0,那么在这个区间内[a,b]必存在一个c使得f(c)=0 那么思路便是取中间点,分成两段区间,然后对这两段区间分别再比较,跳 ...
- 安装Python到Linux(Pyenv)
pyenv是一个多Python版本的托管工具,我们可以使用它安装Python和随意的切换系统环境中默认使用的Python版本. 运行环境 系统版本:CentOS Linux release 7.6.1 ...
- CoaXPress 时间戳 Time Stamping
背景 在CXP2.0之前,CXP没有定义Time Stamping时间戳的概念,但是用户对Time Stamping是有实际需求的,比如我们要对比多台设备拍摄同一个物体不同角度的照片,或者记录触发完成 ...
- java 5种IO模型
每日一句 人的痛苦会把自己折磨到多深呢? 每日一句 You cannot swim for new horizons until you have courage to lose sight of t ...
- drools中then部分的写法
目录 1.背景 2.支持的方法 2.1 insert 插入对象到工作内存中 2.1.1 需求 2.1.2 drl文件编写 2.1.3 部分java代码编写 2.1.4 运行结果 2.1.5 结论 2. ...
- 从零搭建react+ts组件库(封装antd)
为什么会有这样一篇文章?因为网上的教程/示例只说了怎么做,没有系统详细的介绍引入这些依赖.为什么要这样配置,甚至有些文章还是错的!迫于技术洁癖,我希望更多的开发小伙伴能够真正的理解一个项目搭建各个方面 ...
- 深入C++02:深入学习C++还必须掌握的基础
深入学习C++还必须掌握的基础 掌握形参带默认的函数 1.给默认值方向:从右向左给默认值: 2.调用效率:如果传默认值或者立即数(不需要从容器或内存取取的数字)的话都是直接将数字直接push进栈:没有 ...
- Public Round #1
传送门 [PR #1]删数 题意:写的很清楚了,略 思路: 首先转化为差分数组,两个连续数相同,删掉,乘二放进去. 发现能互相转化的两个数,符号,值\(/lowbit\)都一样. 把能相互转化的数归为 ...
- DML数据操作语言
DML数据操作语言 用来对数据库中表的数据记录进行更新.(增删改) 插入insert -- insert into 表(列名1,列名2,列名3...) values (值1,值2,值3...):向表中 ...
- MAC NGINX PHP XDEBUG
1. 安装 homebrew 2. 安装nginx ; 终端运行 brew install nginx: 1)给nginx 设置管理员权限:如果不设置管理员权限,80端口是不能监听的: #这里的目录根 ...