GRANT – установка привилегии, не зная пароля

Если у вас есть доступ root (или близкий к нему) в MySQL и нужно установить дополнительный удаленный доступ для существующего пользователя к базе, но нет под рукой пароля, можно сделать так:

1) смотрим, какие уже есть разрешения для этого пользователя с других хостов и какой у него пароль (пароль, естественно, в зашифрованном виде):

use mysql;
select * from user where User like '%USERNAME%';
# где USERNAME - имя пользователя

2) ставим необходимые права с любым паролем:

GRANT ALL ON dbname.* to dbuser@IP.ADD.RE.SS IDENTIFIED BY 'XYXY';

после запроса, XYXY в зашифрованном виде будет выглядеть длинной строчкой, совсем не похожей на те, что были в п. 1.

3) копируем пароль этого пользователя из пункта 1 и выполняем следующий запрос:

UPDATE user set Password='*ABABABABABABABABABABABABABABABABABABABAB' WHERE Host like 'IP.ADD.RE.SS';
FLUSH PRIVILEGES;

N.B.
Пароль начинается на * (звездочку) и должен в точности соответствовать тому, что был в п.1, для верности можно повторить запрос, вывести список доступов пользователя и убедиться, что пароли совпадают.


Теги: , , , , ,

MySQL – вывод данных в столбец

Иногда возникает необходимость посмотреть запись или записи из таблицы базы данных MySQL. Это можно сделать с помощью GUI-инструмента (например, PHPMyAdmin) или просто в консоли:

> select option_id,blog_id,option_name from wp_options limit 1;
+-----------+---------+-------------+
| option_id | blog_id | option_name |
+-----------+---------+-------------+
|         1 |       0 | siteurl     |
+-----------+---------+-------------+
1 row in set (0.00 sec)

Это удобно, если идет выборка по нескольким полям или у таблицы их просто мало, а когда нужно сделать select * таблице с 20-ю полями, перед глазами возникает лес из палочек псевдографики.

Точка \G

Можно использовать одну хитрость, вместо ";" в конце запроса поставить "\G":

> select option_id,blog_id,option_name from wp_options limit 1\G
*************************** 1. row ***************************
  option_id: 1
    blog_id: 0
option_name: siteurl
1 row in set (0.00 sec)

Таким образом, вы сможете легко прочесть данные в виде столбика "поле: значение".

А если данных несколько строк? Каждая строка будет выведена отдельным блоком и данные все равно будут в более удобном для чтения виде.

Чтобы сделать такой вывод по умолчанию, просто добавьте в файле ~/.my.cnf:

[mysql]
vertical

Так все обычные запросы с ";" в конце будут выводиться в столбик, словно добавлен "\G".

P.S.
Если вы в конце запроса по привычке поставите точку с запятой, т.е. "\G;" – ничего страшного не произойдет, просто внизу будет добавлено:

ERROR:
No query specified

Теги: , , ,

Вопрос президенту

Сайт http://president.pravda.com.ua/ подвергся массовому флеш-мобу, в результате чего умерли MySQL-таблицы (см. скриншот).

Как пропатчить, Мистер Президент?

Всему виной опросник, который с легкой руки какого-то шутника превратился в некое подобие http://bash.org/ (или http://bash.org.ru/ , кому как больше нравится)) =)

А вот и самый популярный вопрос Президенту:
http://president.pravda.com.ua/internet/476f9e611a40f

Именно он разошелся по контакт-листам всех IM’ов украинских пользователей. Результат впечатляет, на данный момент уже > 17500 голосов!

Отже, пане Президенте, як пропатчити KDE2 під FreeBSD? =)


Теги: , , , , , , , , , ,