昨夜、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
インストールプロセスを定期的にキャンセルすることはできず、強制終了するだけです。そのため、何らかの問題が発生する可能性があり、他のすべてのインストール(将来)で再度実行しようとします。
このアップグレードを防止または解決するにはどうすればよいですか?
この解決策は私の問題を解決しました:
権限を使用してデータベースファイルをバックアップします。
Sudo cp -avt /your/backup/directory /var/lib/mysql /etc/mysql/my.cnf
Mysqlファイルを削除します。
Sudo rm -rv /etc/mysql
以下を実行して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 の使用を推奨します。
これらのフォルダーを作成します。
Sudo mkdir -p /etc/mysql/conf.d
mysqlのセットアップでは自動的に行われず、その理由はわかりません。
MySQLを再度インストールします
Sudo apt install mysql-server
私は代わりにPHP開発用の他の依存関係をインストールするためにSudo apt install lamp-server^
を使用しました。
MySQLを停止します。
Sudo service mysql stop
データベースとファイルを復元します。
Sudo cp -a /your/backup/directory/mysql /var/lib
Sudo cp /your/backup/directory/my.cnf /etc/mysql
MySQLを再起動します。
Sudo service mysql start
私はすべてをパージすることなくこれを修正できました。問題は、sysスキーマデータベースが作成されていないことであるため、ここに解決策があります。
再びmysql_upgradeをお楽しみください。これはおそらく、アップグレードスクリプトの混乱であったと思います。
私もこの問題を抱えていました。 apt getを開始してインストールするたびに、DBの更新後または更新中にプロセスがハングしました。ここにある他のソリューションはどれもうまくいきませんでした。
最後に私はパージした
Sudo apt purge mysql-server mysql-server-5.7
そして、mysql here の指示から手動でインストールしました
次に、データディレクトリを古いデータで上書きしました
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はシステムアップデートを壊していませんでした
もちろん、欠点は、今後手動で更新する必要があることです。
Root @localhost
アカウントにパスワードがない場合、 here のようにポストインストールプロセスにバグがあります(特にスレッドの最後のコメントを参照)
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