Я не уверен, понимаю ли я Ваш вопрос правильно. Это немного неясно. Однако то, что могло бы смущать Вас, следующее:
При передаче ссылкой, ссылка на тот же объект передается вызванной функции. Любые изменения в объекте будут отражены в исходном объекте, и следовательно вызывающая сторона будет видеть его.
При передаче значением, конструктора копии вызовут. Конструктор копии по умолчанию только сделает мелкую копию, следовательно, если вызванная функция изменит целое число в объекте, то это не будет замечено функцией вызова, но если функция изменит структуру данных, на которую указывает указатель в объекте, то это будет замечено вызывающей стороной из-за мелкой копии.
я, возможно, неправильно понял Ваш вопрос, но я думал, что дам ему удар так или иначе.
Во-первых, я должен указать, что перед любым изменением файлов данных InnoDB следует прочитать 13.2.5. Добавление, удаление или изменение размера файлов данных и журналов InnoDB .
Указанные вами шаги почти правильные. Перед такими изменениями рекомендуется делать резервную копию. Давайте посмотрим, что с вами случилось:
Сообщения об ошибках
InnoDB: Ошибка: файл журнала ./ib_logfile0 имеет другой размер 0 5242880 байт InnoDB: чем указано в файле .cnf 0 268435456 байт!
вызваны изменением размера innodb_log_file_size и не удалением старых файлов. Возможно, вы забыли удалить де ib_logfile0 / 1
при первом запуске mysqld после изменения. Сообщение
090813 11:00:18 [Примечание] / usr / sbin / mysqld: готово к подключению.
показывает, что вы решили эту проблему (удалив ib_logfile
s). Но, удаляя их, вы создаете другую проблему. Повреждены данные для XXXX \ User.frm или возникла какая-то проблема с InnoDB Engine.
Чтобы убедиться, что InnoDB включен, запустите эту команду в приглашении mysql:
show variables like "%inno%";
В списке результатов должно быть " have_innodb = YES
". Иногда, когда InnoDB может не запускаться (значение NO
или DISABLED
), появляется сообщение Неверная информация в файле
.
- Если это проблема, вы изменили что-то еще, что препятствует правильному запуску InnoDB Engine (разрешения datadir или tmpdir, другие переменные innodb ( вы не показали полный журнал. ) и т. Д. .). Просмотрите изменения или поместите файлы .cnf
(до и после).
- Если InnoDB Engine имеет значение ДА
, вам необходимо восстановить таблицу. (Если это так, добавьте комментарий, и я добавлю сюда информацию. Мне лень делать это сейчас.)
Первая строка ошибки предполагает, что вы не удалили файл ib_logfile0. Вы можете подтвердить, что переименовываете / удаляете нужный?
Что нужно проверить:
Пробовали ли вы использовать клиент SQL для редактирования поля innodb_log_file_size
?
Лично мне нравится SQuirreL
Я подозреваю, что вы удалили не те файлы журнала. поищите другие файлы ib_logfile *. может быть, вы используете innodb_log_group_home_dir?
если да, убедитесь, что вы удалили оттуда файлы ib_log, а не каталог данных.