Ubuntu 16.04でMySQL 5.7.15へのアップグレードがクラッシュする


13

昨夜、Ubuntu OSをアップグレードしようとしましたが、MySQL 5.7.15は変更の1つでした。mysqlは正常に動作しているため、アップグレードは成功したようですが、インストールプロセスはこのメッセージで動作を停止しました。

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

インストールプロセスを定期的にキャンセルすることはできず、強制終了するだけです。そのため、何らかの問題が発生する可能性があり、他のすべてのインストール(将来)でも再試行されます。

このアップグレードを防止または解決するにはどうすればよいですか?

回答:


12

この解決策は私の問題を解決しました:

  1. 許可を使用してデータベースファイルをバックアップします。

    sudo cp -avt /your/backup/directory /var/lib/mysql /etc/mysql/my.cnf
    
  2. mysqlファイルを削除します。

    sudo rm -rv /etc/mysql 
    
  3. 次を実行してMySQLを完全に削除します。

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

    Synapticの使用をお勧めします。

  4. これらのフォルダーを作成します。

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

    mysqlのセットアップでは自動的に行われず、その理由はわかりません。

  5. MySQLを再度インストールします

    sudo apt install mysql-server
    

    sudo apt install lamp-server^代わりに、PHP開発用の他の依存関係をインストールするために使用しました。

  6. MySQLを停止します。

    sudo service mysql stop 
    
  7. データベースとファイルを復元します。

    sudo cp -a /your/backup/directory/mysql /var/lib   
    sudo cp /your/backup/directory/my.cnf /etc/mysql 
    
  8. MySQLを再起動します。

    sudo service mysql start 
    

1
dpkgの:エラーのクリーンアップ中:サブプロセスインストールインストール後のスクリプトは処理中に1つのエラーが発生したエラー終了ステータスを返します。mysql-SERVER-5.7
スティービーG

重要なのは、削除されていますsudo rm /var/cache/debconf/config.datsudo rm /var/cache/debconf/passwords.datsudo rm /var/cache/debconf/templates.dat。その後、すべてをパージします。次に、システムを再起動します。
スティービーG

同じ問題があり、この手順で解決しました。MySQLの削除後にシステムを再起動することをお勧めします。これにより、Stevieによって報告された問題が回避されるようです。

4

私はすべてをパージすることなくこれを修正することができました。問題は、sysスキーマデータベースが作成されていないことであると思われるため、ここに解決策があります。

  1. クローンhttps://github.com/mysql/mysql-sysおよびクローン化されたフォルダにcd。
  2. ターミナルで、mysql -u root -p <./sys_57.sql(またはバージョンに応じてsys_56.sql)を実行します

再びmysql_upgradeをお楽しみください。これはおそらく、アップグレードスクリプトの混乱だったと思います。


はい、データベースのアップグレードに関する問題です。残念ながら、ソリューションをテストして、それが機能しているかどうかを確認することはできません。
オミド

「あなたはまだmysql_upgradeコマンドを実行する必要がある場合は、MySQLのこのインストールは、すでに5.7.22にアップグレードされ、使用の--forceを」私が報告された私のMySQL 5.7.22のインストールにこのソリューションを試してみましたが、それが魅力のように働いた
ヘンリック

2

私もこの問題を抱えていました。apt getを開始してインストールするたびに、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はシステムアップデートを壊していませんでした

欠点は、もちろん、今後手動で更新する必要があることです。


1

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


ああ!後世のためのp注:<3あなたは私の命を救ったあなたが使用して(同じように失敗します)さらにMySQLの更新を禁止することapt-mark hold mysql-server-5.7
甲-モニカの上に残って
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.