【開發(fā)記錄】在linuxDeploye上的ubuntu2204安裝MySQL遇到的問題
閑來無事想著在我老舊的leX722上裝個(gè)服務(wù)器,好不容易裝上了ubuntuARM64的2204版本,安裝apache2和php都沒問題,就MySQL安裝配置各種出錯,我來總結(jié)下

一、安裝過程出錯
錯誤概述
? ??有 2 個(gè)軟件包沒有被完全安裝或卸載。
? ??解壓縮后會消耗 0 B 的額外空間。
? ??您希望繼續(xù)執(zhí)行嗎? [Y/n] y
? ??正在設(shè)置 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)時(shí)出錯:
? ??子進(jìn)程 已安裝 post-installation 腳本 返回錯誤狀態(tài) 1
? ??dpkg: 依賴關(guān)系問題使得 mysql-server 的配置工作不能繼續(xù):
? ??mysql-server 依賴于 mysql-server-5.7;然而:
? ? 軟件包 mysql-server-5.7 尚未配置。
版本可能是其他版本,但解決方法都一樣,,當(dāng)然這有一句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這個(gè)錯誤稍后會提到
解決方法:
? ? //現(xiàn)將info文件夾更名
? ? sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old?
? ? //再新建一個(gè)新的info文件夾
? ? sudo mkdir /var/lib/dpkg/info
? ? sudo apt-get update,再 $ sudo apt-get -f install //不用解釋了吧
? ? //執(zhí)行完上一步操作后會在新的info文件夾下生成一些文件,現(xiàn)將這些文件全部移到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
二、啟動服務(wù)失敗
先用編輯器查看錯誤文件,一般在/var/log/mysql/error.log
如果只有mysqlx的報(bào)錯重啟下機(jī)子就行
重啟后如果依然啟動失敗,錯誤日志中有socket: '/var/run/mysqld/mysqlx.sock文件連接失敗相關(guān)錯誤,需要運(yùn)行命令usermod -G 3003 mysql
即可解決
原因是android里將一些硬件使用(包括網(wǎng)絡(luò))的權(quán)限歸到不同的用戶組,而3003就是關(guān)于網(wǎng)絡(luò)權(quán)限的組,稱為inet. 上述命令是在debiad的用戶權(quán)限系統(tǒng)中給mysql添加inte權(quán)限.
如果是文件創(chuàng)建失敗則大概率是文件夾讀寫權(quán)限不夠,在路徑/var/run/mysqld/對mysql用戶進(jìn)行授權(quán)即可
限當(dāng)然因?yàn)闄?quán)限問題,大概率ping命令也不能用,所以還要運(yùn)行下
usermod -G 3003 root
之后再重啟下啟動服務(wù)就行
踩坑吐槽:主要是第二個(gè)錯誤對于socket文件連接失敗,網(wǎng)上大多方法都是初始化數(shù)據(jù)庫、提升權(quán)限什么的,但都無濟(jì)于事,但就在今天偶然間檢索到了一篇”LinuxDeploy下ping命令無法運(yùn)行,提示socket:權(quán)限不足“的文章,既然都是socket文件連接失敗,受到啟發(fā),便想到了給mysql用戶權(quán)限。。。至于錯誤為何如此離譜,可能是因?yàn)長inux deploy將系統(tǒng)運(yùn)行在chroot容器里的原因,導(dǎo)致mysql權(quán)限不夠不能本地連接
參考文章鏈接:www.cnblogs.com/EasonJim/p/7215988.html
blog.csdn.net/weixin_44858471/article/details/105712008