Как сделать дамп юзеров и паролей к базам данным MySQL?

12 3
L
На сайте с 23.09.2012
Offline
13
2408

Приветствую.

Думаю любому дураку ясно как сделать дамп баз данных MySQL - но вот при этом дампе не копируются никакие доступы к базам данных, т.е. юзеры и пароли не копируются.

Вопрос - как же сделать их дамп?

Знаю что вопрос тупой - но вот никак не втуплю, как же всё таки перенести пользователей и их пароли на чистую БД.

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#1

Все настройки лежат в базе "mysql", целиком её конечно же не стоит експортить и импортить, но ноги ростут оттуда. На сколько я помню дамп клиента с паролем сделать нельзя, но можно взять табличку users из базы mysql и с ней уже шаманить.

Есть около 15.000 ipv4 !!! (http://onyx.net.ua/price.php#ipv4) Качественный хостинг с 2005 года - лучшее клиентам! (http://onyx.net.ua/)
M
На сайте с 01.12.2009
Offline
235
#2

ручками, ручками дядя ффедя ;)

Администратор Linux,Freebsd. построения крупных проектов.
L
На сайте с 23.09.2012
Offline
13
#3
Romka_Kharkov:
Все настройки лежат в базе "mysql", целиком её конечно же не стоит експортить и импортить, но ноги ростут оттуда. На сколько я помню дамп клиента с паролем сделать нельзя, но можно взять табличку users из базы mysql и с ней уже шаманить.

Что значит шаманить?

M
На сайте с 01.12.2009
Offline
235
#4

use mysql;

select host,user,password from user;

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#5
Lopas:
Что значит шаманить?

madoff ниже уже написал, суть заключается в том, что mysql информацию по авторизации (логин пароль) хранит в базе под названием "mysql" в табличке "user". Соответственно "шаманить" это - вынимать эти данные из базы и складывать в новую базу. А одной кнопкой из коробки такого нельзя сделать :) По сути вы сейчас для одного Select+Insert собрались делать ДАМП :) Рекомендовал бы ознакомится с командой GRANT TABLE ссылка не супер новая, по этому в текущих версиях могут быть изменения синтаксиса, но если именно "перенести" пароль то вам SELECT + INSERT нужен для одной строки в таблице (ну или несколько, смотря как необходимый пользователь описан в mysql.user). Но в таком случае не забываем о том, что информацию о принадлежности пользователя к базе и назначение прав для конкретного пользователя по отношению к базе mysql хранит в таблице "db" в той же базе "mysql", т.е "шаманить" это вынимать и копировать строки оттуда. Ну и напоследок, что бы изменения вступили в силу надо будет сделать FLUSH PRIVILEGES;

Andreyka
На сайте с 19.02.2005
Offline
822
#6

Прекрасно копируются юзеры и права и пароли.

Не стоит плодить сущности без необходимости
Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#7
Andreyka:
Прекрасно копируются юзеры и права и пароли.

наверное надо обратиться к вам что бы вы заговорили ? :)

M
На сайте с 01.12.2009
Offline
235
#8
Romka_Kharkov:
наверное надо обратиться к вам что бы вы заговорили ? :)

А он всегда разговаривает 😂, я порой думаю не робот он )

M
На сайте с 16.09.2009
Offline
278
#9
Romka_Kharkov:
Рекомендовал бы ознакомится с командой GRANT TABLE ссылка не супер новая, по этому в текущих версиях могут быть изменения синтаксиса

Ну и зачем на всякую порнографию ссылаться, вместо официальной документации?

Все что нужно есть в доках mysql, включая пример бекапа:

http://dev.mysql.com/doc/refman/5.0/en/show-grants.html

(в комментариях: mysql --batch --skip-column-names --execute="SELECT DISTINCT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') AS query FROM user" mysql | mysql --batch --skip-column-names mysql | perl -p -e '$_ =~ s/$/;/; END { print "FLUSH PRIVILEGES;\n" }' > mysql-grants.sql)

PS: И никаких военный тайн, андрейка ;)

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
Andreyka
На сайте с 19.02.2005
Offline
822
#10

А с каких пор документация стала военной тайной? :)

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий