Обновление до MySQL 5.7.15 сбоев на Ubuntu 16.04

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

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

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

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

1
задан 16 September 2016 в 09:31

2 ответа

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

Clone https://github.com/mysql/mysql-sys и cd в клонированную папку. В терминале запустите mysql -u root -p & lt; ./sys_57.sql (или sys_56.sql, в зависимости от вашей версии)

Наслаждайтесь mysql_upgrade снова. Я думаю, это, вероятно, было ошибкой обновления скриптов.

2
ответ дан 23 May 2018 в 06:06
  • 1
    Да, это проблема с обновлением баз данных. К сожалению, я больше не могу тестировать ваше решение, чтобы увидеть, работает оно или нет. – Omid 11 April 2017 в 13:11

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

В конце я очистил

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 не нарушал системные обновления

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

0
ответ дан 23 May 2018 в 06:06

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

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