Вчера вечером я пытался обновить свою ОС 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
Я не могу отменить процесс установки регулярным способом и просто иметь для уничтожения его. Таким образом, это может вызвать некоторую проблему, и также для любой установки (в будущем) это пытается сделать это снова.
Как предотвратить это обновление или решить его?
Это решение решило мою проблему:
Резервное копирование Ваши файлы базы данных с полномочиями:
sudo cp -avt /your/backup/directory /var/lib/mysql /etc/mysql/my.cnf
Удаляют mysql файлы:
sudo rm -rv /etc/mysql
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
Использование Синаптический рекомендуется.
Создают эти папки:
sudo mkdir -p /etc/mysql/conf.d
установка mysql не сделала этого автоматически, и я не знаю почему.
MySQL Install снова
sudo apt install mysql-server
я использовал sudo apt install lamp-server^
вместо этого для установки других зависимостей для разработки PHP.
MySQL Stop:
sudo service mysql stop
базы данных Restore и файлы:
sudo cp -a /your/backup/directory/mysql /var/lib
sudo cp /your/backup/directory/my.cnf /etc/mysql
MySQL Restart:
sudo service mysql start
Если Ваш 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
Мне удалось зафиксировать это, не имея необходимость производить чистку всего. Кажется, что проблема состоит в том, что sys база данных схемы никогда не создавалась, таким образом, вот решение:
Обладают mysql_upgrade, работающим снова. Я предполагаю, что это, вероятно, было, путаница сценариев обновления.
У меня была эта проблема также. Каждый раз я запустил склонный, получают и установил процесс, зависнет после или во время обновления 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 не повреждал системные обновления
Оборотная сторона, конечно, то, что я должен буду сделать ручные обновления в будущем.
Простым решением является sudo killall mysqld
, в то время как операция apt-get это работает.
Операция apt просто продолжала работать без ошибок после этого(!)