9

を作成し、mysqldump --all-databases すべてのデータベースを新しいサーバーに転送しました。debian-sys-maintユーザーのパスワードが一致しなかったため、機能しませんでした。そこで、このユーザーのパスワードを変更します。その後、サーバーを再起動すると、このエラーが発生しました。

1行目のエラー1577(HY000):サーバーの起動時にイベントスケジューラによって使用されるシステムテーブルが破損していることが判明したため、続行できません1行目のエラー1547(HY000):mysql.procの列数が間違っています。予想20、16が見つかりました。テーブルが破損している可能性があります

この後、さらにいくつのエラーが発生するかわかりません。そのため、アプリケーションに関連付けられているデータベースのみを使用してダンプを作成することを考えました(mysqldump --databases)。

では、どのようにユーザーを移行しますか?標準的な方法はありますか?

詳しくは:

New Server version: 5.1.63-0+squeeze1 (Debian)
Old Server version: 5.0.51a-24+lenny5 (Debian)
4

1 に答える 1

10

MySql のバージョンが異なるため、おそらくmysql_upgradeを実行する必要があります。

ただし、原則として、mysqlシステム スキーマをあるサーバーから別のサーバーにコピーしないでください。結果として、私の知る限り、あるサーバーから別のサーバーにユーザーとユーザー権限をコピーする「標準的な」方法はありません。

本当にやりたい/必要がある場合は、次のことを試してください。

$> mysql --silent --skip-column-names -e"show grants for user@host"

上記GRANTは、ユーザーを作成して同じ権限を付与するために、ターゲットサーバーにすぐにフィードできるステートメントを出力します。

ただし、ターゲット サーバーが空の場合は、データ フォルダー全体を古いサーバーから新しいサーバーに移動し、新しいサーバーで5.0 から 5.1 への標準的なアップグレード手順を実行することができます。

于 2012-11-04T11:35:06.230 に答える