Обновление до MySQL 5.7.15 отказывает на Ubuntu 16.04

Вчера вечером я пытался обновить свою ОС Ubuntu, и MySQL 5.7.15 был одним из изменений. Кажется, что обновление успешно, потому что mysql является работой propely, но процесс установки имеет остановку, работающую с этим сообщением:

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

Я не могу отменить процесс установки регулярным способом и просто иметь для уничтожения его. Таким образом, это может вызвать некоторую проблему, и также для любой установки (в будущем) это пытается сделать это снова.

Как предотвратить это обновление или решить его?

13
задан 15 September 2016 в 23:31

5 ответов

Это решение решило мою проблему:

  1. Резервное копирование Ваши файлы базы данных с полномочиями:

    sudo cp -avt /your/backup/directory /var/lib/mysql /etc/mysql/my.cnf
    
  2. Удаляют mysql файлы:

    sudo rm -rv /etc/mysql 
    
  3. MySQL Remove полностью через выполнение:

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

    Использование Синаптический рекомендуется.

  4. Создают эти папки:

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

    установка mysql не сделала этого автоматически, и я не знаю почему.

  5. MySQL Install снова

    sudo apt install mysql-server
    

    я использовал sudo apt install lamp-server^ вместо этого для установки других зависимостей для разработки PHP.

  6. MySQL Stop:

    sudo service mysql stop 
    
  7. базы данных Restore и файлы:

    sudo cp -a /your/backup/directory/mysql /var/lib   
    sudo cp /your/backup/directory/my.cnf /etc/mysql 
    
  8. MySQL Restart:

    sudo service mysql start 
    
12
ответ дан 23 November 2019 в 03:18

Если Ваш root@ localhost учетная запись не имеет никакого пароля затем существует ошибка в процессе постустановки, как указано здесь (см. особенно последний комментарий потока)

  • чистка весь TMP* файлы в /var/lib/mysql-files
  • редактируют файл /var/lib/dpkg/info/mysql-server-5.7.postinst и комментарий (использующий #) строка 370:

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

  • выполненный снова sudo dpkg --configure -a

1
ответ дан 23 November 2019 в 03:18

Мне удалось зафиксировать это, не имея необходимость производить чистку всего. Кажется, что проблема состоит в том, что sys база данных схемы никогда не создавалась, таким образом, вот решение:

  1. Клон https://github.com/mysql/mysql-sys и CD в клонированную папку.
  2. В терминале, выполненные mysql-u базируются-p <./sys_57.sql (или sys_56.sql, в зависимости от Вашей версии)

Обладают mysql_upgrade, работающим снова. Я предполагаю, что это, вероятно, было, путаница сценариев обновления.

4
ответ дан 23 November 2019 в 03:18

У меня была эта проблема также. Каждый раз я запустил склонный, получают и установил процесс, зависнет после или во время обновления DB. Ни одно из других решений здесь не работало.

В конце я произвел чистку

sudo apt purge mysql-server mysql-server-5.7

И сопровождаемый ручная установка из инструкций для mysql здесь

Я затем перезаписал каталог данных со своими старыми данными

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

и наконец добавил systemd сервис как это

/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

Затем работал

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

Затем все, казалось, работало прежде, и mysql не повреждал системные обновления

Оборотная сторона, конечно, то, что я должен буду сделать ручные обновления в будущем.

2
ответ дан 23 November 2019 в 03:18

Простым решением является sudo killall mysqld, в то время как операция apt-get это работает.

Операция apt просто продолжала работать без ошибок после этого(!)

10
ответ дан 5 May 2020 в 22:30

Другие вопросы по тегам:

Похожие вопросы: