MySQL 5.7.40升级至8.x前,mysqlsh检查出现socket连接错误如何修复?
MySQL升级检查工具报错的修复方案
一、解决locale缺失问题
- 检查系统是否已安装
en_US.UTF-8locale:locale -a | grep en_US.UTF-8 - 若无输出,生成该locale:
- Debian/Ubuntu系统:
sudo locale-gen en_US.UTF-8 - RHEL/CentOS系统:
sudo localedef -i en_US -f UTF-8 en_US.UTF-8
- Debian/Ubuntu系统:
- 设置环境变量(临时生效,若要永久生效可添加到
~/.bashrc或/etc/profile):export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8
二、解决Socket连接失败问题
错误提示找不到/tmp/mysql.sock,说明MySQL实际使用的socket路径与mysqlsh默认查找路径不符,可通过以下两种方式解决:
方式1:指定正确的socket路径
- 先查询MySQL实际的socket路径:
示例返回结果:mysql -e "SHOW VARIABLES LIKE 'socket'"+---------------+-----------------------------+ | Variable_name | Value | +---------------+-----------------------------+ | socket | /var/run/mysqld/mysqld.sock | +---------------+-----------------------------+ - 将查询到的路径加入命令:
mysqlsh --util checkForServerUpgrade root@localhost?socket=/var/run/mysqld/mysqld.sock
方式2:使用TCP连接替代Socket连接
直接指定127.0.0.1强制使用TCP连接,绕过socket路径问题:
mysqlsh --util checkForServerUpgrade root@127.0.0.1
内容的提问来源于stack exchange,提问作者Przemek
相关产品推荐
相关产品推荐

