J'avais un système Linux (LMDE) avec MySQL. Le système a utilisé innodb_file_per_table pour la plupart des bases de données. (pas sûr de la version, quelle que soit la "dernière" dans LMDE)
Je suis maintenant sur un nouveau système (Manjaro / Arch) avec MariaDB.
$ mysql --version
mysql Ver 15.1 Distrib 10.0.15-MariaDB, for Linux (x86_64) using readline 5.1
L'ancien système avait beaucoup de grosses bases de données, que je préférerais vraiment ne pas avoir à copier avec mysqldump. Je préférerais de loin copier le dossier / var / lib / mysql de l'ancien système.
Est-ce possible?
mysql
arch-linux
mariadb
don Quichotte
la source
la source
Réponses:
Oui c'est possible. (J'ai compris cela en écrivant la question)
Faites vos modifications dans /etc/mysql/my.cnf. Par exemple, innodb_file_per_table.
(plus de cela est hors de portée pour cette question)
sudo systemctl stop mysqld
.(Vous voulez vous arrêter sur les deux serveurs, mais dans mon cas, l'autre était déjà éteint)
sudo chown -R mysql:mysql /var/lib/mysql
sudo systemctl start mysqld
.->
Job for mysqld.service failed. See "systemctl status mysqld.service" and "journalctl -xe" for details.
sudo systemctl status mysqld
.-> Cela montre que le service fonctionne, mais certaines choses vont mal. C'est à cela que sert mysql_upgrade.
mysql_upgrade -u root -p
Remarques:
sudo systemctl restart mysqld
.CAVEAT: Apparemment, vous ne pouvez pas rétrograder vers une version inférieure de MySQL. J'ai essayé de migrer mes bases de données vers MySQL 5.5 (ou plutôt, la MariaDB correspondante), et le serveur ne démarre pas. J'ai dû installer MySQL 5.6 à la place. (la MariaDB correspondant à MySQL 5.6 n'est pas disponible sur ma distribution Linux).
la source
/etc/my.cnf
de.