Показаны сообщения с ярлыком MySQL. Показать все сообщения
Показаны сообщения с ярлыком MySQL. Показать все сообщения

среда, 10 июля 2013 г.

MySQL. Инкремент при UPDATE

Редко, но все же приходиться иногда проставить с помощью инкремента некое поле в таблице базы данных, например место или позиция в рейтинге чего-либо. Для этого необходимо выполнить такие команды:

-- Определяем переменную
select @i := 0;
-- Используем ее в качестве инкремента и присваиваем значение нужному нам полю.
UPDATE `site_statistic` SET `ratePosition` = (select @i := @i + 1) ORDER BY myPoint DESC;

Пожалуй, все.

пятница, 10 августа 2012 г.

MySQL. Отключение логирования запросов без индексов.

MySQL при включенном slow log логирует и запросы которые не содержат в себе индексов. Порою возникает необходимость такую "фичу" отключить для этого необходимо найти конфигурационный файл mysql. В случае если это Debian то это будет /etc/mysql/my.cnf и добавить туда в секцию MySQL директиву log-queries-not-using-indexes. Что приведет к игнорированию запросов которые не используют индексы, только если, конечно, время выполнения такого запроса будет ниже чем установленный long-query-time

понедельник, 7 мая 2012 г.

Magento. Как сбросить админский пароль на админку.

Для сброса пароля необходимо сделать следующее.
1. Если вы не помните или не знаете как называется пользователь с админскими правами, то выполните такой запрос:

SELECT * FROM admin_user;
В полученом списке выберите необходимого пользователя где будет указано что это админ.
2. Далее выполняем такой запрос:
UPDATE admin_user SET password=CONCAT(MD5('{соль}{пароль}'), ':{соль}') WHERE username='{пользователь_админ}';
Где заменить {пароль} на новый пароль, {соль} на любую последовательность символов, ну соль, одним словом, а {пользователь_админ} — на того пользователя, которого мы нашли по первому запросу.

Up: Как правильно заметил Max St слово password которое идет после {новый_пароль} это, цитирую :), "строка, которую указали для шифрования при установке magento".

среда, 18 апреля 2012 г.

MySQL. Как сделать дамб БД с хранимыми процедурами, и не только.

Иногда приходится перенести дамп базы данных (MySQL), и перенести его не просто так, а с хранимыми внутри БД процедурами, чтобы приказать mysqldump делать дамп с оными надо выполнить такую вот команду:
mysqldump -uUser -pPass --routines --extended-insert DBName > /dir/file.sql
Для бекапа дампа и одновременного сжатия его можно воспользоваться таким вот способом.
mysqldump -uUser -pPass DBName | gzip > /dir/file.sql.gz
Чтобы развернуть дамп завернутый :) таким вот способом надо сделать вот так:
gunzip < /dir/file.sql.gz | mysql -uUser -pPass DBName
Если вы хотите сделать бекап только одной таблицы, для этого утилите mysqldump надо указать следующий ключ --tables table1 table2, и через пробел все таблицы которые вы хотите задампить. Вот примерчик:
mysqldump -uUser -pPass DBName --tables table1 table2 > /dir/file.sql.gz

вторник, 3 января 2012 г.

MySQL. Структура таблицы


SHOW DATABASES; - список баз данных
SHOW TABLES [FROM db_name]; - список таблиц в базе
SHOW COLUMNS FROM таблица [FROM db_name]; - список столбцов в таблице
SHOW CREATE TABLE table_name; - показать структуру таблицы в формате "CREATE TABLE"
SHOW INDEX FROM tbl_name; - список индексов
SHOW GRANTS FOR user [FROM db_name]; - привилегии для пользователя.


SHOW VARIABLES; - значения системных переменных
SHOW [FULL] PROCESSLIST; - статистика по mysqld процессам
SHOW STATUS; - общая статистика
SHOW TABLE STATUS [FROM db_name]; - статистика по всем таблицам в базе

Подсмотрел тут: www.opennet.ru