Ubuntu 16.04'te MySQL 5.7.15 kilitlenmelerine yükseltme


13

Dün gece Ubuntu işletim sistemimi yükseltmeye çalıştım ve MySQL 5.7.15 değişikliklerden biriydi. Mysql düzgün çalıştığı için yükseltme başarılı görünüyor, ancak kurulum işlemi bu mesajla çalışmayı durdurdu:

This installation of MySQL is already upgraded to 5.7.15, 
use --force if you still need to run mysql_upgrade

Yükleme işlemini gerekli şekilde iptal edemiyorum ve sadece öldürmek zorundayım. Bu yüzden bazı sorunlara neden olabilir ve diğer tüm kurulumlar için (gelecekte) tekrar yapmaya çalışır.

Bu yükseltme nasıl önlenir veya çözülür?

Yanıtlar:


12

Bu çözüm sorunumu çözdü:

  1. Veritabanı dosyalarınızı izinlerle yedekleyin:

    sudo cp -avt /your/backup/directory /var/lib/mysql /etc/mysql/my.cnf
    
  2. Mysql dosyalarını silin:

    sudo rm -rv /etc/mysql 
    
  3. MySQL'i çalıştırarak tamamen kaldırın:

    sudo apt purge mysql-server mysql-server-5.7 mysql-server-core-5.7 mysql-client-5.7 mysql-client-core-5.7
    

    Kullanımı Synaptic'ten önerilir.

  4. Bu klasörleri oluşturun:

    sudo mkdir -p /etc/mysql/conf.d
    

    mysql kurulumu otomatik olarak yapmadı ve nedenini bilmiyorum.

  5. MySQL'i tekrar yükleyin

    sudo apt install mysql-server
    

    Bunun sudo apt install lamp-server^yerine PHP geliştirme için diğer bağımlılıkları yüklemek için kullandım .

  6. MySQL'i durdurun:

    sudo service mysql stop 
    
  7. Veritabanlarını ve dosyaları geri yükleme:

    sudo cp -a /your/backup/directory/mysql /var/lib   
    sudo cp /your/backup/directory/my.cnf /etc/mysql 
    
  8. MySQL'i yeniden başlatın:

    sudo service mysql start 
    

1
dpkg: temizleme sırasında hata: alt süreç yüklü kurulum sonrası komut dosyası hata çıkış durumu döndürdü 1 İşlem sırasında hatalarla karşılaşıldı: mysql-server-5.7
Stevie G

Anahtar şey kaldırıyor: sudo rm /var/cache/debconf/config.dat, sudo rm /var/cache/debconf/passwords.datve sudo rm /var/cache/debconf/templates.dat. Sonra her şeyi temizleyin. Sonra sistemi yeniden başlatın.
Stevie G

Aynı sorunu yaşadım ve bu prosedürle çözdüm. MySQL temizlendikten sonra sistemin yeniden başlatılmasını öneririm. Görünüşe göre bu, Stevie tarafından bildirilen sorunu önlüyor.
Tsutomu

4

Her şeyi temizlemek zorunda kalmadan bunu düzeltmeyi başardım. Sorun sys şema veritabanı asla oluşturulmamış gibi görünüyor, işte çözüm:

  1. Klon https://github.com/mysql/mysql-sys ve klonlanmış klasöre cd.
  2. Terminalde mysql -u root -p <./sys_57.sql (veya sürümünüze bağlı olarak sys_56.sql) komutunu çalıştırın.

Mysql_upgrade tekrar çalışmanın tadını çıkarın. Sanırım bu muhtemelen bir yükseltme komut dosyası karışıklık oldu.


Evet, veritabanlarını yükseltmeyle ilgili bir sorundur. Maalesef çözümünüzü artık çalışıp çalışmadığını test edemiyorum.
Omid

"MySQL'in bu yüklemesi zaten 5.7.22'ye yükseltildi, hala mysql_upgrade çalıştırmanız gerekiyorsa --force kullan" ifadesini bildiren mysql 5.7.22 kurulumunda bu çözümü denedim ve bir cazibe gibi çalıştı
henrik

2

Ben de bu sorunu yaşadım. Her ne zaman apt get'i kurup kurduğumda süreç DB güncellemesinden sonra ya da bu sırada beklemekteydi. Buradaki diğer çözümlerin hiçbiri işe yaramadı.

Sonunda tasfiye ettim

sudo apt purge mysql-server mysql-server-5.7

Ve manuel mysql için talimatlar yüklemek izlenen burada

Sonra eski verilerimle veri dizininin üzerine yazdım

sudo cp -Rfv /var/lib/mysql /usr/local/mysql/data

ve son olarak böyle bir sistem hizmeti ekledik

/lib/systemd/system/mysql.service

[Unit]
Description=MySQL Server
After=syslog.target
After=network.target

[Service]
Type=simple
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p /var/run/mysqld
ExecStartPre=/bin/chown mysql:mysql -R /var/run/mysqld
ExecStart=/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/lib/mysql/plugin --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
TimeoutSec=300
PrivateTmp=true
User=mysql
Group=mysql
WorkingDirectory=/usr

[Install]
WantedBy=multi-user.target

Sonra koştu

# systemctl daemon-reload
# systemctl enable mysql
# systemctl start mysql

Sonra her şey eskisi gibi çalışıyor gibiydi ve mysql sistem güncellemelerini bozmuyordu

Dezavantajı, elbette, gelecekte manuel güncellemeler yapmam gerekecek.


1

Root @ localhosthesabınızın şifresi yoksa, sonradan yükleme işleminde burada belirtildiği gibi bir hata vardır (özellikle iş parçacığının son açıklamasına bakın)

  • içindeki tüm TMP*dosyaları temizle/var/lib/mysql-files
  • dosyayı düzenleyin ve /var/lib/dpkg/info/mysql-server-5.7.postinst370 satırını (# kullanarak) yorumlayın:

    echo "ALTER USER 'root'@'localhost' IDENTIFIED WITH 'auth_socket';" >> "$initfile"

  • tekrar koş sudo dpkg --configure -a


Ah canım! <3 Hayatımı kurtardın: p Gelecek nesiller için not:apt-mark hold mysql-server-5.7
Gab - Monica
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.