16.04 frissítés tört mysql-server

113

A teljes frissítésem jól sikerült, de maradtam egy kritikusan elhúzódó probléma, hogy a mysql-szerver nem tud telepíteni magát, és semmi, amit próbálok, nem működik.

Ez a hiba, amelyet a telepítés / újratelepítés során tapasztaltam:

Setting up mysql-server-5.7 (5.7.11-0ubuntu6) ...
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                   Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for ureadahead (0.100.0-19) ...
Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

Megpróbáltam teljesen eltávolítani, bár így próbáltam telepíteni a MariaDB-t a függőség miatt (?). Bármilyen javaslatot tesz arra, hogy mit tudok megtenni a probléma megoldásához.

EDIT: Úgy tűnik, nem vagyok az egyetlen: link

    
készlet TheGremlyn 22.04.2016 19:53
forrás

8 válasz

112

A @ andrew-beerman utasításai a helyes úton vannak, bár nekem nem teljesen világosak és úgy tűnik, hogy többet ajánlanak, mint ami szükséges. Összefogtam a fenti válaszokat és egy hasznos bejegyzést a hibakezdésben.

Ezek a lépések, amelyeket a következőképpen kijavítottam:

  1. Amy.cnf file -ban/etc/mysql -ban mentse el és törölje vagy átnevezheti

    sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
    
  2. Távolítsa el a/etc/mysql/mysql.conf.d/ mappát a

    segítségével
    sudo rm -r /etc/mysql/mysql.conf.d/
    
  3. Ellenőrizze, hogy nincs-e egymy.cnf fájlja valahol máshol (az én otthoni dirben voltam) vagy/etc/alternatives/my.cnf use

    sudo find / -name my.cnf
    
  4. Biztonsági mentés és/etc/mysql/debian.cnf fájlok eltávolítása (nem biztos, ha szükséges, de csak abban az esetben)

    sudo mv /etc/mysql/debian.cnf /etc/mysql/debian.cnf.bak
    sudo apt purge mysql-server mysql-server-5.7 mysql-server-core-5.7
    sudo apt install mysql-server
    
  5. Ha a syslog hibát jelez, mint például: "mysqld: Nem lehet olvasni a" /etc/mysql/conf.d/ "könyvtárban" szimbolikus link létrehozása:

    sudo ln -s /etc/mysql/mysql.conf.d /etc/mysql/conf.d
    

    Akkor a szolgáltatásnak képesnek kell lennie asudo service mysql start -al kezdeni.

Ez működött!

    
válasz adott TheGremlyn 25.04.2016 15:38
forrás
54

Ma már ugyanaz a probléma, sok megoldást kipróbálva azt tapasztaltuk, hogy a probléma volt asudo systemctl disable mysql.service parancs, amit korábban a MySQL automatikus indításának letiltására használtam, így újra működésbe hoztam MySQL kiszolgálót asudo systemctl enable mysql.service és futtassa újra a frissítési folyamatot, és tökéletesen megszűnt.

    
válasz adott Naruto Biju Mode 26.04.2016 00:37
forrás
17

Az itt leírt utasítások a szerveren találhatók: link

  

Megértem a fájdalmat, hogy a rendszer rendezetlen állapotban van   de ne aggódjon az egész helyzet miatt, és lépésről lépésre   hogy a rendszer tiszta legyen.

     

Először megtekintheti a gépen található összes mysql csomag aktuális állapotát   használatával: dpkg -l | grep mysql (Kérjük, illessze be a kimenetet az utolsó nélkül   oszlop)

     

Az első oszlop a csomag aktuális állapotát jelöli. Itt vannak   a lehetséges opciók:

     

ii) Telepítve rc) Az eltávolított konfigurációs fájlok megőrzése (Ez legyen az állapot   az eltávolított összes csomagról, amelyet eltávolít az apt-get remove segítségével   ne távolítsa el a config-fájlokat a / etc alatt)

     

Ahhoz, hogy ez működjön, futtatnia kell a "apt-get purge" -t   a fenti listában nem látsz semmilyen csomagot.

     

Ne feledje, hogy néhány nem-mysql-szerver csomagot szeretne   python-mysql.connector és python-mysqldb, ha telepítve van, nem kell   eltávolítva, mivel ezeknek nincs hatása erre a helyzetre, de ha   eltávolítva problémákat okozhat az őket használó alkalmazásokban.

     

Mindenképpen megpróbáljuk újra meglátogatni dokumentumainkat, hogy lássuk, hogyan tudunk   megvédi a felhasználókat a bajban. Köszönet a megosztásért   a visszajelzést velünk részletesen.

    
válasz adott Andrew Beeman 23.04.2016 00:05
forrás
17

A hibaüzeneted ezt a sort tartalmazza:

subprocess installed post-installation script returned error exit status 1

Ez ainstalled post-installation script azonban nem szerepel név szerint. Sok bosszúzás után megtudtam, hogy a neve (az én esetemben)/var/lib/dpkg/info/mysql-server-5.7.postinst.

Nyissa meg ezt a fájlt asudo vi /var/lib/dpkg/info/mysql-server-5.7.postinst -kal vagy a kedvenc szerkesztővel.

A lap tetején változtassa meg a (z) 3 sor (vagy hasonló) sort:set -e ésset -x, mentse el a fájlt. (-e a "kilépés a hibákról",-x jelenti a "kifejezetten megjeleníti a parancs végrehajtását", feltételezhetően)

Runsudo dpkg --configure -a --log /tmp/dpkg.log (a --log opció opcionális). Aapt upgrade -ot egyszerűen csak futtathatja, ha tudod, hogy ez lesz az egyetlen frissített csomag.

Most amysql-server-5.7.postinst bash parancsfájl verbose kimenetét kapod, és kitalálhatod, mi a baj.

Az én esetemben sikertelenül próbálta (újra) futtatni amysql_upgrade -ot, de ehhez nem volt szükség a saját testreszabott mysql telepítésemre. Én biztos kézzel csináltam korábban, sikeresen, és minden rendben volt.

Szóval kihagytam a 321-es sort (régebbi mysqld-kiadásoknál próbáld meg a 281-es sort),

#mysql_upgrade --defaults-file=/etc/mysql/debian.cnf || result=$?

és a korábban meghiúsult parancssudo apt upgrade (futtassa újra) sikeresen befejeződött, és a dpkg eltávolította a csomag hibaállapotát.

Most állíthatja vissza aset -x -otset -e -ra (fent említett). És opcionálisan figyelmen kívül hagyja a mysql-frissítési sort.

Extra munkát igényelhet, ha a mysql adatpartíciót nem szabványos helyre helyezte át. A/var/lib/mysql/data -ból az enyémet a symlink-en keresztül egy másik meghajtóba helyeztem. Ezután esetleg el kell távolítania a szimbolikus linket apostinst szkript manipuláció előtt. Ezután újból létrehozza a csomagfrissítés futtatása után.

A mysqld debian csomag következő kisebb verziófrissítése után ez a probléma a/var/lib/dpkg/info/mysql-server-5.7.postinst parancsfájllal újra megjelenhet.

    
válasz adott knb 01.07.2016 14:03
forrás
3

Az én esetemben a strace-szal láttam, hogy a / var / run / mysqld / nem léteztek, és a mysqld nem tudja létrehozni a mysqld.sock fájlt.

Ezek a parancsok megoldották a problémámat:

mkdir /var/run/mysqld
chown mysql.mysql /var/run/mysqld
chmod 700 /var/run/mysqld

Most:

systemctl start mysql

És a mysql ismét működik:)

    
válasz adott Leonardo Catalinas 27.04.2016 10:14
forrás
3

Az én esetemben megoldhatom a problémát a

hozzáadásával
# Allow log file access
/home/system/var/log/mysql.err rw,
/home/system/var/log/mysql.log rw,
/home/system/var/log/mysql/ r,
/home/system/var/log/mysql/** rw,

a következőre:/etc/apparmor.d/local/usr.sbin.mysqld

További részletekért látogass el válasz (ChristophS) a stackoverflowban.

    
válasz adott ChristophS 29.04.2016 14:30
forrás
1

Az ezen oldalon található egyetlen válasz sem működött számomra.

Végül elmentem az Oracle letöltési oldalra , amysql-apt-config_0.8.8-1_all.deb letöltésével és a MySQL telepítésével az Oracle repo-ról:

sudo dpkg -i mysql-apt-config_0.8.8-1_all.deb
sudo apt update
sudo apt install mysql-server
    
válasz adott ostrokach 25.09.2017 19:19
forrás
0

Ugyanaz a kérdésem volt. Megpróbáltam többször telepíteni a mysql-t, de nem sikerült.

Rájöttem, hogy a probléma számomra, hogy egy másik mysql folyamat már fut.

Részletesen:

Miután alaposan elolvastam a (z)/var/log/mysql/error.log könyvtárat, és megállapítottam:

  

[ERROR] Nem lehet elindítani a kiszolgálót: Bind a TCP / IP porton: A cím már be van kapcsolva   használja

     

[HIBA] Van már egy másik mysqld szerver fut a porton:   3306?

Úgy tűnik, hogy egy másik alkalmazás már használta a portot.

Ellenőrzöttem aps -aux | grep 3306:

használatával
$ ps -aux | grep 3306
milkovs+  6802  0.0  0.0  16336  1084 pts/19   S+   21:39   0:00 grep --color=auto 3306
mysql    14706  0.0  0.3 1270192 13916 pts/2   Sl   Aug19   0:29 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --skip-grant-tables --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 --log-syslog=1 --log-syslog-facility=daemon --log-syslog-tag=

És megöltem asudo kill -15 14706

folyamatot

Akkor kezdtem el mysql:/etc/init.d/mysql start

Végül a mysql nekem működik! Remélem, segít valakinek.

    
válasz adott milkovsky 20.08.2016 22:02
forrás