У меня есть внешний жесткий диск, на котором есть незагрузочный клон старой машины (которой у меня больше нет). Одной из вещей, которые присутствовали на этой машине, была установка MySQL (v 5.5.19) с несколькими базами данных, которые я хотел бы сохранить.
Я покопался и обнаружил, что есть {root}/usr/local/mysql/data
каталог, который содержит подкаталоги, которые кажутся соответствующими базам данных, которые я хотел бы сохранить.
Я скопировал один из этих каталогов на свой основной компьютер (также работающий с MySQL 5.5.19) и получил все права доступа к файлам и права собственности, настроенные правильно (_mysql:wheel
, 0660
в файлах .frm и т. д.).
Когда я сейчас вхожу в PHPMyAdmin, я вижу базу данных, указанную слева, с правильным количеством таблиц в скобках. Однако, когда я пытаюсь подключиться к этой базе данных, он сообщает, что в базе данных нет таблиц.
Очевидно, я что-то упустил. Что я пропустил, и есть ли другой способ сделать это проще? Могу ли я, возможно, изменить множество файлов .cnf, чтобы они указывали на файлы MySQL на моем внешнем жестком диске, а затем использовать mysqldump
на тех? Какие файлы мне нужно будет изменить?
Я понял!
Для потомков вот что я сделал:
/usr/local/mysql/support-files/my-small.cnf
к /etc/my.cnf
я открыл my.cnf
и добавил эту строку в [mysqld]
раздел:
# point the datadir to the old stuff on the external hard drive
datadir = /Volumes/Clone/usr/local/mysql/data
my.conf
/etc/my.cnf
файлПервое, что вам следует сделать, это следующее:
chown -R mysql:mysql /usr/local/mysql/data
Вы должны узнать, насколько велики файлы InnoDB
Если ibdata1 <20M, а ib_logfile0 = 5M, тогда mysql работал без my.cnf. Вы должны иметь возможность запустить mysql. Если они разного размера, вам нужно создать my.cnf со следующими
[mysqld]
innodb_log_file_size=???? (file of ib_logfile0 in M)
Я надеюсь это хорошее начало