
MySQL サーバーが故障してしまいましたが、原因がわかりません。yum の再インストールを試みると、次のエラーが表示されます: エラー: mysql-server が mysql-server と競合しています
サーバーにすでに MySQL サーバーが存在し、アップグレードを実行したときにすべてが台無しになったためだと思われます。
MySQL にアクセスできないため、mysqldump も実行できません。既存のデータベースを危険にさらすことなく再インストールするにはどうすればよいでしょうか?
答え1
パッケージmysql-server
は、削除またはインストール時にユーザー データに触れないように設計されています。発生している問題は、i386 パッケージがインストールされているのに、代わりに x86_64 パッケージが必要であるか、またはその逆である可能性があります。続行するには、完全な yum 出力が必要になります。
答え2
mysql を再インストールする場合は、すべてのデータが にあることに注意してください/var/lib/mysql
( を確認してくださいmy.conf
)。すべてのデータを別のフォルダにコピーしてから、変更を行ってください。
リポジトリをチェックして並べ替え、最初から MySQL をインストールすることもできます。これらすべてを実行して、次回は注意する方が安全です。再インストールの前に、次の 2 つのことを行ってください。
- mysql のバージョンを確認してください。
- たとえば、次のようにコピーします
/var/lib/mysql
(root として):cp -R /var/lib/mysql /tmp/mysql.bck
答え3
異なるリポジトリによって、異なるバージョンの mysql-server が提供されているようです。どのリポジトリを実行していたかは不明なので、どのリポジトリを無効にするかはわかりません。CentOS を実行していると想定していますが、yum であれば何でもかまいません。
repoquery
また、 ( とともにインストールされます) を使用して、mysql-server パッケージによってインストールされたファイルとデータベースが配置されている場所を確認することもできますyum-utils
(または、パッケージが MySQL をインストールする方法である場合は、初期化スクリプトを見つけます)。
次に、他の作業を行う前に、データベース ファイル自体をバックアップします。データの回復を望む場合は、データベース ファイルが必要になります。
実行しているMySQLの正確なバージョンがわかったら、そのバージョンの新しいボックス(AmazonのEC2が便利です)をインストールし、データファイルを新しくインストールしたものにコピーします。5月(ここでは大きな if であり、MySQL が起動している状態では実行しないでください)mysqldump
データベースで実行できるようにします。
元の質問に関して言えば、正常なパッケージがインストールされたデータベースを破壊することはないと思いますmysql-server
が、あなたのデータを賭けるつもりはありません。
幸運を。
答え4
私はただやろうとしyum remove mysql-commutity-server
たセントオス6
/var/lib/mysql を削除しようとしました。そのため、アンインストールする前にそこから datadir を移動したほうがよいでしょう。