Подожди минутку !!
Помните, что файлы .frm содержат только макет описания таблицы.
Если у вас есть все таблицы MyISAM, скопируйте соответствующие .MYD и .MYI.файлы в ту же папку, что и .frm, достаточно.@Brad уже заявил об этом в своем ответе.(+1 от меня за его ответ)
Теперь, если таблица InnoDB, перемещения .frm будет недостаточно.Почему?
InnoDB хранит четыре типа информации в / var / lib / mysql / ibdata1
- Страницы данных
- Индексные страницы
- Таблица метаданных
- Данные MVCC
Файл ibdata1 должен быть скопирован как / var / lib / mysql.Вы также должны убедиться, что все настройки для innodb в /etc/my.cnf исходного сервера БД скопированы в /etc/my.cnf целевого сервера БД.
Если какой-либо частью ваших данных является InnoDB, вам гораздо лучше выполнить mysqldump всех данных (кроме баз данных information_schema и mysql) и загрузить его в новую установку MySQL на целевой машине.
А как насчет базы данных mysql?Существует два способа портировать схему mysql без использования mysql_upgrade:
ВАРИАНТ 1: Использовать mk-show-grants (или pt-show-grants Perka Toolkit)
Это выдает все MySQL Grants как операторы SQL, которые полностью переносимы на любой экземпляр MySQL 5.x.
ВАРИАНТ 2: Выполнить эти команды (Моя личная эмуляция того, что mk-show-grants делает)
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
Вывод любого из этих методов приведет к командам GRANT для всех неанонимных пользователей (который не зависит от версии).После создания файла MySQLUserGrants.sql загрузите его на целевой сервер БД.