Часто при установке Mysql мы не задумываемся о том, где лучше хранить сами базу данных и устанавливаем по умолчанию в системный раздел. Но со временем данных становится больше и больше и базы начинают занимать львиную долю системного раздела, который, как правило, не очень большой. Возникает необходимость переноса. В этом посте я расскажу о шагах, которые нужно для этого сделать. Предварительно, нелишним будет сделать резервную копию.
Для начала остановим нашу MySQL:
1 | sudo service mysql stop |
Теперь перенесем базы на новый адрес:
1 2 | cp -rv /var/lib/mysql /mnt/new/path где /mnt/new/path – новое место для хранения базы данных |
Сменим владельца директории на пользователя mysql:
1 | chown -R mysql:mysql /mnt/new/path/mysql |
В конфигурации mysql нужно изменить путь:
1 2 3 4 5 6 | [mysqld] user = mysql datadir = /mnt/new/path/mysql port = 3306 socket = /run/mysqld/mysqld.sock pid-file = /var/run/mysqld.pid |
Запускаем сервис:
1 | service mysql start |
Если при запуске возникнут ошибки связанные с InnoDB, раскомментируйте следующие строки и исправьте пути
1 2 3 4 5 | # Uncomment the following if you are using InnoDB tables #innodb_data_home_dir = /var/lib/mysql/ #innodb_data_file_path = ibdata1:10M:autoextend #innodb_log_group_home_dir = /var/lib/mysql/ #innodb_log_arch_dir = /var/lib/mysql/ |