Как сделать бэкап дампа на удаленный сервер?

Имеется скрипт, который должен создавать дамп базы, сжимать его и копировать на удаленный сервер.

#!/bin/bash MUSER="" #root пользователь MySQL MPASS="" #пароль пользователя root MySQL #Указываем директорию и имя файла куда будем выводить дамп значения #%H-час %M-минута %d-день %m-месяц %y-год DPATCH="/var/backups/db/backup.$(date +%H-%M_%d.%m.%y).sql" #Указываем имя и местоположения нашего архива с дампом DBGZIP="/var/backups/db/backup.$(date +%H-%M_%d.%m.%y).tar.gz" FTPU="" #Имя пользователя FTP FTPP="" #Пароль пользователя FTP FTPS="" #Сервер FTP например ftp.example.com FTPF="/home/user" #Директория FTP например /home/backup #эта команда создает дамп от имени пользователя root ключ -A обозначает, #что в дамп выводятся все базы данных, если вам нужна только определенная, #просто вместо ключа укажите вашу БД mysqldump --single-transaction=1 --lock-tables=false -u$MUSER -p$MPASS -A > $DPATCH # сжимаем наш дамп tar czfP $DBGZIP $DPATCH # удаляем дамп с расширением SQL rm -rf $DPATCH # Загружаем архив на удаленный FTP сервер ncftpput -m -u$FTPU -p$FTPP $FTPS $FTPF $DBGZIP

Скрипт выполняет без ошибок
— Dump completed on 2015-03-19 23:40:12

Архив с дампом на локальном хосте появляется, на удаленный не копируется.

Что может быть не так?

Медленный UPDATE по Primary Key MySQL/MariaDB?

Запрос:
UPDATE `cart` SET `user_id` = NULL, `completed` = 0 WHERE `id` = 6948; Query OK, 0 rows affected (1.21 sec) Rows matched: 1 Changed: 0 Warnings: 0
Видно, что затронуто 0 строк, тем не менее 1210 мс — это шикарно. SELECT этой строки всегда за 0мс.
Размер таблицы (6,354 rows).

describe cart; +-----------+------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | user_id | int(11) | YES | MUL | NULL | | | completed | tinyint(1) | NO | | 0 | | +-----------+------------+------+-----+---------+----------------+ 3 rows in set (0.01 sec) show index from cart; +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | cart | 0 | PRIMARY | 1 | id | A | 6386 | NULL | NULL | | BTREE | | | | cart | 1 | user_id | 1 | user_id | A | 2128 | NULL | NULL | YES | BTREE | | | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

Вот кусок профилирования этого запроса который виновен:
| Status | Duration | CPU_user | CPU_system | Context_voluntary | Context_involuntary | Block_ops_in | Block_ops_out | Messages_sent | Messages_received | Page_faults_major | Page_faults_minor | Swaps | Source_function | Source_file | Source_line | | query end | 2.502555 | 0.003000 | 0.000000 | 88 | 8 | 0| 136 | 0 | 0 | 0 | 0 | 0 | mysql_execute_command | sql_parse.cc | 5093 |
Server version: 10.0.17-MariaDB-1~wheezy

Почему не запускается mysql?

Не запускается mysql. Уже по форумам лазил ответа не нашел, горит.
OS: Ubuntu

~# /etc/init.d/mysql start
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql start

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start mysql
start: Job failed to start

~# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)

Логи почему-то не доступен, файл сокета есть, удалил новый создал, не помогает

dmesg | grep mysql
Читать дальше

Как правильно запустить вторую копию демона mysql?

Здравствуйте!
Есть сервер с mysql (percona), на котором крутится несколько БД, обслуживающих сайты, запущенные на том-же сервере.
Для нужд разработки необходимо создать БД, доступную из интернета. При этом нет желания вывешивать основного демона в интернет. Пытаюсь запустить копию демона по древней инструкции: guruadmin.ru/page/zapuskaem-neskolko-kopij-mysql-n…

Сделал вот такой конфиг:

cat /etc/mysql_internet/debian.cnf [client] host = localhost port = 3322 user = debian-sys-maint password = password socket = /var/run/mysqld/mysqld_internet.sock pid-file = /var/lib/mysql/mysql_internet.pid datadir = /var/lib/mysql_internet/ log = /var/log/mysql_internet/ log-bin = /var/log/mysql_internet/ log-update = /var/log/mysql_internet/ log-isam = /var/log/mysql_internet/ bdb-logdir = /var/log/mysql_internet/ [mysql_upgrade] host = localhost port = 3322 user = debian-sys-maint password = password socket = /var/run/mysqld/mysqld_internet.sock basedir = /usr pid-file = /var/lib/mysql/mysql_internet.pid datadir = /var/lib/mysql_internet/ log = /var/log/mysql_internet/ log-bin = /var/log/mysql_internet/ log-update = /var/log/mysql_internet/ log-isam = /var/log/mysql_internet/ bdb-logdir = /var/log/mysql_internet/
Читать дальше

Упал MySQL, и его не рестартануть. Что делать, чтобы поднять MySQL?

Есть сервер: CentOS 5.4. Intel Celeron Duo 2.0 GHz, HDD: 160GB, RAM: 1GB, CASE: tower.
На сервере упал MySQL и его не рестартануть.

Раньше помогала команда /etc/init.d/mysqld restart, — но сейчас не удается рестартануть:
bash-3.2# /etc/init.d/mysqld restart Останавливается mysqld: [ OK ] MySQL Daemon failed to start. Запускается mysqld: [ СБОЙ ] bash-3.2#
Также не помогает команда mysql start:
bash-3.2# mysql start ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) bash-3.2#
Выполняю df -h. Результат команды df -h говорит о том, что закончилось место на жестком диске.

— Обычно в такой ситуации помогает удаление ненужных файлов из файловой системы. Соответственно в данном случае также удалил некоторые файлы (картинки), чтобы освободить место. После этого в интерфейсе консольного Midnight Commander обновляется счетчик свободного места — из Midnight Commander видно, что освободилось ~ 6 ГБ:

Но при этом результат повторного выполнения команды df -h по-прежнему почему-то говорит о том, что нет места на жестком диске:
Читать дальше

Почему падает mysql и поднять помогает только ребут, иначе daemon failed?

CentOS. VestaCP. Падает mysql и его не рестартануть (service mysqld restart), пишет daemon failed.

140601 18:09:38 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 140601 18:09:38 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead. 140601 18:09:38 [Note] Plugin 'FEDERATED' is disabled. 140601 18:09:38 InnoDB: The InnoDB memory heap is disabled 140601 18:09:38 InnoDB: Mutexes and rw_locks use GCC atomic builtins 140601 18:09:38 InnoDB: Compressed tables use zlib 1.2.3 140601 18:09:38 InnoDB: Using Linux native AIO 140601 18:09:38 InnoDB: Initializing buffer pool, size = 128.0M 140601 18:09:38 InnoDB: Completed initialization of buffer pool 140601 18:09:38 InnoDB: highest supported file format is Barracuda. InnoDB: The log sequence number in ibdata files does not match InnoDB: the log sequence number in the ib_logfiles! 140601 18:09:38 InnoDB: Database was not shut down normally! InnoDB: Starting crash recovery. InnoDB: Reading tablespace information from the .ibd files… InnoDB: Restoring possible half-written data pages from the doublewrite InnoDB: buffer… 140601 18:09:38 InnoDB: Waiting for the background threads to start 140601 18:09:39 InnoDB: 5.5.37 started; log sequence number 3023145 140601 18:09:39 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306 140601 18:09:39 [Note] — '0.0.0.0' resolves to '0.0.0.0'; 140601 18:09:39 [Note] Server socket created on IP: '0.0.0.0'. 140601 18:09:39 [Warning] 'proxies_priv' entry '@ root@myserver' ignored in --skip-name-resolve mode. 140601 18:09:39 [Note] Event Scheduler: Loaded 0 events 140601 18:09:39 [Note] /usr/libexec/mysqld: ready for connections. Version: '5.5.37' socket: '/var/lib/mysql/mysql.sock' port: 3306
Читать дальше

MySQL запрос или вина хостера. Кто прав?

Добрый вечер!

У меня есть ресурс на облачном хостинге. Там есть скрипт поиска. Идет поиск по нескольким таблицам, но FULLTEXT индекс только у одного поля ( articles.article_text_for_search ). Объемы текстов по которым ведется поиск — большие. Количество записей в articles — 3 000

Дело в том, что когда работает скрипт search.php ( а это около 8-ми секунд ) — то остальные страницы с сайта, если их попробовать загрузить — сразу не отдаются. Отдаются только когда скрипт search.php начинает отдавать контент в браузер…

Хостер говорит, что это я виноват. И больше ничего не говорит. Я не гуру mysql, но как SELECT запросы могут мешать отдачи контента? ( LOCK Tables не использую, тип таблиц везде — MyISAM )

SELECT articles.id, articles.magazine_id, articles.issue_id, articles.article_name, articles.annotation, articles.article_text, SUBSTRING( articles.article_text, 1, 1000) as article_text_1, articles.section_id, articles.article_rating, articles.to_main, articles.article_unix_add, magazines.mag_name, magazines_issues.issue_number, GROUP_CONCAT( users.user_name ) AS user_names, GROUP_CONCAT( users.user_surname ) AS user_surnames,
Читать дальше

MySQL: пользователь root без GRANT, что делать?

Здравствуйте.

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

После чего я обнаружил, что я не могу даже рестартануть mysql, т.к. у пользователя debian-sys-maint нет на это прав, но это не суть, как эту проблему решить потом, я уже нашёл.

Дело в том, что пользователь root у меня почему-то без GRANT. Т.е. он может делать всё, но не может создать например нового юзера.
mysql -uroot -p
Welcome to the MySQL monitor. Commands end with; or \g. Your MySQL connection id is 900 Server version: 5.5.28-1~dotdeb.0 (Debian)
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '...' WITH GRANT OPTION;
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Вот и всё. Получается, что у моего root-пользователя нет прав на создание пользователей и назначение прав.

Помогите пожалуйста наделить рута правами)

Заранее спасибо!

Как обновить список пользователей MySQL в ISP Manager?

Добрый вечер,

для управления сервером используется ISP Manager 4.4 Lite

Есть на сервере пользователь, допустим user
У него был одноименный пользователь MySQL.

Но потом, случайно, пользователя MySQL удалили.
Я зашел в PhpMyAdmin с правами root`а, и создал пользователя заного, с тем же паролем.

Всё заработало, но пользователь пропал из ISP Manager`a.
Т.е. при создании БД, его невозможно выбрать, а соответственно дать ему привелегии.

Все это, конечно, не смертельно, но создает неудобства.

Как я понимаю, у ISP`а есть свой «реестр» пользователей MySQL.
Может ктонибудь знает как его обновить, или вручную отредактировать файл настроек?

Пробовал смотреть в /usr/local/ispmgr/etc/ispmgr.conf — там есть только список владельцев БД.

MySQL протокол

Сижу, разбираюсь с протоколом MySQL по forge.mysql.com/wiki/MySQL_Internals_ClientServer_Protocol
итак, начинаем. Коннектимся, в случае доступности сервера, как и положено, получаем
34 00 00 00 0A 34 2E 31 2E 32 32 00…
( 34 00 00) первые 3 байта — длина пакета
( 00 ) четвертый байт — номер пакета.
далее — версия сервера и прочая инфа по конфигу сервера.(строка с нулём на конце)
НО если вдруг превышен лимит коннектов к серверу — мы получаем от него ошибку «Host '***' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts', то есть такой пакет:
7C 00 00 00 FF 69 04 48 6F 73 74 20
тут так же, 4 байта — заголовок (длина пакета + номер пакета), но что дальше за три байта?
Как именно отделять пакеты с подобными ошибками от нормальных? откуда эти байты „FF 69 04“? где вообще можно найти полную инфу по всем возможным вариантам ответов сервера? Есть ли opensource проекты реализации mysql протокола? Или может я что-то пропустил когда читал по ссылке выше? Помогите пожалуйста.

p.s. да, я изобретаю велосипед, но он мне сейчас очень нужен :)