Вчера вечером я попытался обновить ОС 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
Я не могу отменить процесс установки в порядке и просто убить его. Таким образом, это может вызвать некоторые проблемы, а также для каждой другой установки (в будущем) она пытается сделать это снова.
Как предотвратить это обновление или решить его?
Мне удалось исправить это, не пытаясь очистить все. Кажется, проблема в том, что база данных sys schema никогда не создавалась, поэтому вот решение:
Clone https://github.com/mysql/mysql-sys и cd в клонированную папку. В терминале запустите mysql -u root -p & lt; ./sys_57.sql (или sys_56.sql, в зависимости от вашей версии)Наслаждайтесь mysql_upgrade снова. Я думаю, это, вероятно, было ошибкой обновления скриптов.
У меня тоже была эта проблема. Каждый раз, когда я запускал 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 не нарушал системные обновления
Недостатком, конечно же, является то, что мне нужно будет делать ручные обновления в будущем.