【开发记录】在linuxDeploye上的ubuntu2204安装MySQL遇到的问题
闲来无事想着在我老旧的leX722上装个服务器,好不容易装上了ubuntuARM64的2204版本,安装apache2和php都没问题,就MySQL安装配置各种出错,我来总结下

一、安装过程出错
错误概述
有 2 个软件包没有被完全安装或卸载。
解压缩后会消耗 0 B 的额外空间。
您希望继续执行吗? [Y/n] y
正在设置 mysql-server-5.7 (5.7.24-0ubuntu0.16.04.1) ...
mysql_upgrade: Got error: 2002: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) while connecting to the MySQL server
Upgrade process encountered error and will not continue.
mysql_upgrade failed with exit status 11
dpkg: 处理软件包 mysql-server-5.7 (--configure)时出错:
子进程 已安装 post-installation 脚本 返回错误状态 1
dpkg: 依赖关系问题使得 mysql-server 的配置工作不能继续:
mysql-server 依赖于 mysql-server-5.7;然而:
软件包 mysql-server-5.7 尚未配置。
版本可能是其他版本,但解决方法都一样,,当然这有一句mysql_upgrade: Got error: 2002: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) while connecting to the MySQL server这个错误稍后会提到
解决方法:
//现将info文件夹更名
sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old
//再新建一个新的info文件夹
sudo mkdir /var/lib/dpkg/info
sudo apt-get update,再 $ sudo apt-get -f install //不用解释了吧
//执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全部移到info_old文件夹下
sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old
//把自己新建的info文件夹删掉
sudo rm -rf /var/lib/dpkg/info
//把以前的info文件夹重新改回名字
sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info
二、启动服务失败
先用编辑器查看错误文件,一般在/var/log/mysql/error.log
如果只有mysqlx的报错重启下机子就行
重启后如果依然启动失败,错误日志中有socket: '/var/run/mysqld/mysqlx.sock文件连接失败相关错误,需要运行命令usermod -G 3003 mysql
即可解决
原因是android里将一些硬件使用(包括网络)的权限归到不同的用户组,而3003就是关于网络权限的组,称为inet. 上述命令是在debiad的用户权限系统中给mysql添加inte权限.
如果是文件创建失败则大概率是文件夹读写权限不够,在路径/var/run/mysqld/对mysql用户进行授权即可
限当然因为权限问题,大概率ping命令也不能用,所以还要运行下
usermod -G 3003 root
之后再重启下启动服务就行
踩坑吐槽:主要是第二个错误对于socket文件连接失败,网上大多方法都是初始化数据库、提升权限什么的,但都无济于事,但就在今天偶然间检索到了一篇”LinuxDeploy下ping命令无法运行,提示socket:权限不足“的文章,既然都是socket文件连接失败,受到启发,便想到了给mysql用户权限。。。至于错误为何如此离谱,可能是因为Linux deploy将系统运行在chroot容器里的原因,导致mysql权限不够不能本地连接
参考文章链接:www.cnblogs.com/EasonJim/p/7215988.html
blog.csdn.net/weixin_44858471/article/details/105712008

