Недавно я столкнулся с повреждением данных после изменения значения этого параметра в my.cnf
из :
innodb_data_file_path = ibdata1:10M:autoextend:max:128M
кому:
innodb_data_file_path = ibdata1:10M:autoextend:max:256M
Я не совсем уверен, что это было причиной повреждения, так как ранее в БД не хватало места. Мой вопрос: безопасно ли изменять максимальный размер БД после заполнения пространства?
Если вы хотите быть уверенным, вам следует сделать следующее:
Сначала измените путь innodb_data_file_path в /etc/my.cnf на
[mysqld]
innodb_data_file_path = ibdata1:10M:autoextend
Запустите следующее
cd
service mysql restart --skip-networking --skip-grant-tables
mysqldump --single-transaction --routines --triggers --all-databases > MySQLData.sql
service mysql stop
Убедитесь, что существует /root/MySQLData.sql. Затем продолжайте
rm /var/lib/mysql/ibdata1
rm /var/lib/mysql/ib_logfile0
rm /var/lib/mysql/ib_logfile1
service mysql start --skip-networking --skip-grant-tables
mysql < MySQLData.sql
service mysql restart
Попробуйте !!!
На самом деле у меня есть мониторинг на моей работе, который использует MySQL в качестве своего репозитория, и я изменил максимальное число с 1 ТБ на 16 ТБ. Во время сбора данных ничего нельзя было записать, но никакого повреждения не было. Вы можете просто изменить номер.
Я бы вообще удалил максимальное значение, как я уже упоминал
innodb_data_file_path = ibdata1:10M:autoextend
по двум причинам: