Шпаргалка - неактуальные часовые пояса в MySQL

Проблема

Обнаружил, что на одном из серверов FreeBSD СУБД MySQL для пояса Europe/Moscow указано смещение +6 часов вместо +7, т.е. время отстает на 1 час.

Решение

Одно из решений, которое у меня сработало это загрузить из системы данные о часовых поясах в mysql.time_zone_*:

mysql_tzinfo_to_sql /usr/share/zoneinfo |mysql -p mysql
service mysql-server restart

Система: FreeBSD 9.1-RELEASE-p2
СУБД: mysql51-server-5.1.73_1

Шпаргалка - лог пользовательских подключений

Иногда, в целях отладки веб-приложений, требуется сохранять информацию об успешных и не успешных подключениях к MySQL.

Для этого требуется включить опцию general_log. С этой опцией MySQL будет сохранять все запросы и все подключения в лог-файл. Приступим.

Настройка

Добавим следующие строки в my.cnf в раздел [mysqld]

general_log = 1
general_log_file = /var/log/mysql/general.log

Обеспечим место хранения, установим корректные права

mkdir -m 750 /var/log/mysql
chown mysql:mysql /var/log/mysql

Перезапустим mysql

service mysqld restart

Внимание ! Имейте ввиду, что при включенном general_log, нагрузка CPU, disk IO на сервере возрастет.

Результаты

# grep user /var/log/mysql/general.log
120831 11:21:00    13 Connect   test_user@127.0.0.1 on test_db
                   18 Connect   test_user@127.0.0.1 on test_db
                   57 Connect   test_user@127.0.0.1 on test_db
                   62 Connect   test_user@127.0.0.1 on test_db
120831 11:23:00    97 Connect   test_user@127.0.0.1 on test_db
120831 11:23:03   100 Connect   test_user@127.0.0.1 on test_db
                  208 Connect   test_user@127.0.0.1 on test_db
                  212 Connect   test_user@127.0.0.1 on test_db
                  216 Connect   test_user@127.0.0.1 on test_db
                  274 Connect   test_user@127.0.0.1 on test_db
                  273 Connect   test_user@127.0.0.1 on test_db
                  277 Connect   test_user@127.0.0.1 on test_db
120831 11:26:00   340 Connect   test_user@127.0.0.1 on test_db
                  343 Connect   test_user@127.0.0.1 on test_db
                  398 Connect   test_user@127.0.0.1 on test_db

Ссылки

Шпаргалка - удаление всех таблиц в БД в MySQL

Иногда, например, при разворачивании нового бэкапа БД, необходимо сначала удалить все таблицы в БД. К сожалению, в MySQL нет запроса «удалить все таблицы». Поэтому вот команда удаления:

mysql --silent --skip-column-names -u [USERNAME] -p[PASSWORD] [DATABASE] -e "show tables" | gawk '{print "drop table " $1 ";"}' | mysql -u [USERNAME] -p[PASSWORD] [DATABASE]
history -c

Ссылки

MySQL - смена забытого пароля для root

Выполним

/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql -u root mysql
> UPDATE user SET Password=PASSWORD("Ваш новый пароль") WHERE User='root';
> FLUSH PRIVILEGES;
> \q

Ссылки

 
blog.txt · Последние изменения: 2013/01/23 14:51 — Антон Бугреев · []