Все мы осознаем важность бекапов.
Делаем бекап
mysqldump -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql Читать
Все мы осознаем важность бекапов.
Делаем бекап
mysqldump -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql Читать
CREATE TABLE newtable LIKE oldtable;
INSERT newtable SELECT * FROM oldtable;
Автор: Sergiy Kamolov
Дата публикации: 2015-07-21T13:51:00.001+03:00
MySQL: insert … on duplicate key update
Часто ли вы используете данную конструкцию?
Наверняка любой программист, кто мало-мальски связан с вебом (а под «вебом» я понимаю LAMP — Linux Apache MySQL PHP), сталкивался c ситуацией, когда перед вставкой новой записи в БД нужно проверить, а вдруг запись с таким ключом уже есть? И если таковая уже имеется, то надо не вставлять новую, а обновлять старую.
Пример применения простой. У вас есть интернет-магазин и вы периодически синхронизируете свою локальную БД с сайтом. Если товар уже присутствует, надо обновить остаток, а если в БД сайта товара нет, то надо добавить запись. Читать
Раньше, при разработки сайтов, никогда особо не акцентировал свое внимание на защиту от т.з. «SQL-инъекций». Что это такое думаю много говорить не стоит, просто процитирую, что об этом пишут на сайте php.net:
Принудительное внедрение вредоносных инструкций в SQL-запросы — методика, в которой взломщик создает или изменяет текущие SQL-запросы для работы со скрытыми данными, их изменения или даже выполнения опасных команд операционной системы на сервере базы данных. Атака выполняется на базе приложения, строящего SQL-запросы из пользовательского ввода и статических переменных.
Как известно в MySQL 5 была включена потдержка таких возможностей как создание хранимых процедур (stored procedures) и триггеров (triggers).
При попытке создать дамп базы, используя mysqldump, обнаружил в нем отсутствие комманд для создания хранимых процедур.
Читать
Небольшой пост о том, как создавать из командной строки mysql новую базу данных и нового пользователя mysql с полными правами на только что созданную базу.
mysql -uroot -p CREATE DATABASE ; GRANT ALL PRIVILEGES ON .* TO 'my_user'@'localhost' IDENTIFIED BY 'my_password' WITH GRANT OPTION