zoukankan      html  css  js  c++  java
  • 命令行登录mysql报Segmentation fault故障解决

    现象:

         在本地登录,执行 /usr/local/mysql/bin/mysql -uroot -pxxxxx --socket=/data/mysql/3306/mysqltmp/mysql.sock -A 

    报错如下:

         显示完下面信息之后,就显示:

    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.

    Segmentation fault (core dumped)

    测试:

       (1)在其它机器登录,没有问题;说明只是本地mysql的问题;

       (2)在本机执行语句,没问题,而不执行语句,进到命令行状态就有问题,说明只是进入命令行时的报错。

    /usr/local/mysql/bin/mysql -uroot -pxxxxxx --socket=/data/mysql/3306/mysqltmp/mysql.sock -e "select * from information_schema.PROCESSLIST where command<>'Sleep';"

      (3)MySQL的错误日志,没有报错:

      (4)操作系统报错如下:

    解决:

          参考了别人的经验,需要修改源码然后重新编译,便可解决,其它机器这个版本没问题,暂时不知道是否与安装出错有关。

    我的版本是5.7.21,如果你使用的是其它版本的MySQL,则需要对应版本的源码:

    修改文件:vi mysql-5.7.21/cmd-line-utils/libedit/terminal.c

    把terminal_set方法中的 char buf[TC_BUFSIZE]; 这一行注释,再把 area = buf;改为 area = NULL;
    更改后如下

    之后重新通过cmake,make;make install,重装mysql之后正常。

  • 相关阅读:
    centos8.2安装nginx
    Centos8安装PostgreSQL
    PostgreSQL 安装时提示下载元数据失败
    MySQL8定时备份
    Centos8安装Docker
    Centos8安装中文字体
    Centos8源码安装libgdiplus
    MySQL拖拽排序
    MySQL8修改事务隔离级别
    MySQL启动问题
  • 原文地址:https://www.cnblogs.com/tonnyChen/p/9083313.html
Copyright © 2011-2022 走看看