Связаться со мной:
4 заметки с тегом

mysql

Дампы всех баз mysql

Сделать дампы всех баз данных пользователя, каждую базу в отдельный дамп:

for i in `mysql -u $USER -p$PASSWORD -e'show databases;' | \
 grep -v performance_schema | grep -v information_schema | grep -v mysql | \
 grep -v Database`; do mysqldump -u $USER -p$PASSWORD $i > /backup/mysql/$i.sql;done
$USER - пользователь mysql
$PASSWORD - пароль пользователя mysql
2015   mysql   mysqldump

Переводим php движки с mysql на mysqli

Начиная с PHP 5.5.0 функции модуля mysql считаются устаревшими(deprecated), а в PHP 7 данный модуль вообще отсутствует, вместо него нужно использовать mysqli. Движки написаные с помощью функций модуля mysql не работают, т.к не могут подключится к базе данных и выдают в логе ошибки типа такой:

PHP Fatal error:  Uncaught Error: Call to undefined function mysql_connect() in...

К счастью, исправить все функции mysql на mysqli можно автоматически, скриптом на любом сайте.

Вот здесь скачиваете zip архив. Создаете в каталоге домена подкаталог например convert и кладете туда содержимое архива.
Потом переходите по ссылке вида
http://ваш_домен.ru/convert/GUI/index.php
И видите

Тут я выбирал «Convert a file», т.к в ошибке указан файл в котором присутствует эта функция. Указываем путь к файлу примерно как на картинке. И выбираем сразу заменить старый файл и забекапить.

Затем жмакаем «Start the conversion» и наслаждаемся результатом.

2015   mysql   mysqli   php   php7

Удаление ревизий записей в wordpress без плагинов из консоли.

WordPress по умолчанию сохраняет ревизии записей в базе mysql. В большинстве случаев эти ревизии не нужны, но они существенно замедляют работу базы mysql и увеличивают её размер.

В первую очередь отключим сохранение ревизий. Откроем файл wp-config.php в папке сайта. И добавим в него строку:

define('WP_POST_REVISIONS', false);

Перед выполнением работ с базой сделаем дамп базы на случай непредвиденных последствий.

# mysqldump -u пользователь_mysql -p имя_базы_wordpress > dump.sql

Система спросит пароль пользователя mysql.

Мы сделали дамп, теперь можно работать с базой. Если что-то пойдёт не так, мы всегда можем восстановить её из дампа. Подключимся к серверу mysql

# mysql -u пользователь_mysql -p

Система спросит пароль пользователя mysql, логинимся. Всё, мы в консоли mysql.

Снимок экрана от 2013-10-20 10:11:03

Выберем базу с которой будем работать, соответственно нам нужно знать название базы с которой работает wordpress.

mysql> USE имя_базы_wordpress;

Удаляем метаданные

mysql> DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = ‘revision’ AND post_name LIKE ‘%revision%’);

Удаляем таксономию

mysql> DELETE FROM wp_term_relationships WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type = ‘revision’ AND post_name LIKE ‘%revision%’);

Теперь удаляем сами ревизии.

mysql> DELETE FROM wp_posts WHERE post_type = ‘revision’ AND post_name LIKE ‘%revision%’;

И в конце выполняем оптимизацию таблицы

mysql> OPTIMIZE TABLE wp_posts;

Всё, ревизии удалены. Проверяем работоспособность сайта.

Автозагрузка mysql на виртуальном сервере.

На некоторых виртуальных серверах VPS(VDS) не работает автозапуск mysql после ребута, из-за настроек стартового скрипта mysql. Исправить это довольно просто. Нужно указать mysql, что стартовать нужно независимо от настроек сети и файловых систем. В файле /etc/init/mysql.conf комментируем строки:

#start on (net-device-up
# and local-filesystems
# and runlevel [2345])

И после них дописываем:

start on runlevel [2345]

2013   mysql   openvz   ubuntu   VDS   VPS