osql 登陆mysql_命令行登录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)操作系统报错如下:

image2018-5-24%2015%3A35%3A17.png?version=1&modificationDate=1527147495000&api=v2

解决:

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

我的版本是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;

更改后如下

image2018-5-24%2015%3A37%3A46.png?version=1&modificationDate=1527147495000&api=v2

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值