Wenn Sie Versionen ändern, verschieben Sie das MySQL-Schema nicht .
Warum sollten Sie den MySQL-Ordner nicht verschieben? Dies hat mit den Authentifizierungsberechtigungen zu tun.
Die Anzahl der Spalten in mysql.user ist von Version zu Version unterschiedlich
Wenn du läufst desc mysql.user
- Sie sehen 31 Zeilen für MySQL 4.1
- Sie sehen 37 Zeilen für MySQL 5.0
- Sie sehen 39 Zeilen für MySQL 5.1
- Sie sehen 42 Zeilen für MySQL 5.5
Ich habe darüber schon einmal geschrieben
Es ist in Ordnung, alles andere zu verschieben. Gehen Sie auf dem neuen Computer mit MySQL 5.5.24 folgendermaßen vor:
mv /var/lib/mysql /var/lib/mysql/mysql55
mkdir /var/lib/mysql
<scp or rsync /var/lib/mysql of MySQL 5.1.41 over to /var/lib.mysql of MySQL 5.5.24>
rm -f /var/lib/mysql/mysql/*
cp /var/lib/mysql/mysql55/* /var/lib/mysql/mysql/*
chown -R mysql:mysql /var/lib/mysql
service mysql start
Die Frage bleibt also:
Wie verschieben Sie die Benutzerrechte im alten MySQL 5.1.41 nach MySQL 5.5.24 ???
Es gibt zwei Möglichkeiten, dies auf dem MySQL 5.1.41-Computer zu tun:
Diese Percona Toolkit-Programmverschiebung druckt die Benutzerberechtigung in Pure SQL aus. Sie können die Ergebnisausgabe in eine Textdatei ausführen. Führen Sie dann die Textdatei in MySQL 5.5.24 aus. Ende der Geschichte.
pt-show-grants ... > MySQLUserGrants.sql
METHODE 2: Emulieren Sie Pt-Show-Zuschüsse
Ich habe meine eigene Technik für Pt-Show-Stipendien gemacht
mysql -hhostaddr -umyuserid -pmypassword --skip-column-names -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''" | mysql -hhostaddr -umyuserid -pmypassword --skip-column-names -A | sed 's/$/;/g' > MySQLUserGrants.sql
Verschieben Sie in beiden Fällen MySQLUserGrants.sql auf den MySQL 5.5.24-Computer und führen Sie das Skript aus
Ich habe bereits darüber geschrieben: Importieren der myisam 5.0-Datenbank in einen 5.5-Innodb-Server