Перенос пользователей в MySQL между серверами
Сначала подключитесь к серверу по SSH от имени пользователя root.
После этого создайте дамп таблицы mysql.user
и сохраните в файл users.sql
:
mysqldump -p -u root mysql --tables user > users.sql
На этом этапе надо заметить, если вы перемещаете пользователей на другой сервер БД, то копирования таблицы mysql.user будет недостаточно. Это связано с тем, что у некоторых пользователей может быть задано ограничение на доступ к определенным базам данных. А в таблице mysql.user таких данных просто нет.
Поэтому кроме mysql.user нужно скопировать таблицы:
- mysql.db для разрешений на уровне базы данных
- mysql.tables_priv для разрешений на уровне таблицы
- mysql.columns_priv для разрешений на уровне столбцов
Чтобы вручную не сохранять каждую таблицу мы советуем установить набор утилит Percona Toolkit:
apt-get install percona-toolkit
После этого запустите pt-show-grants и сохраните полученный файл в grants.sql
pt-show-grants -uroot -p > grants.sql
При помощи SFTP/FTP/SCP перенесите файлы users.sql
и grants.sql
со старого на новый сервер.
После этого на новом сервере выполните команды:
mysql -u root -p mysql < users.sql
mysql -u root -p < grants.sql
mysql -u root -p -e 'flush privileges;'
Готово!