Фев 172021
 

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

Можно было развернуть стандартным способом

mysql -u root -p db < /tmp/dump.sql

Но я решил попробовать другой.
1. Заходим в консоль сервера MySQL
2. Создаем/выбираем базу в которую необходимо залить дамп.
3. Заливаем дамп следующей командой

source /root/base/dump.sql;

4. Ждем пока завершиться восстановление базы.

На восстановление базы у меня ушло около 4-х часов, после восстановления, размер базы составил 74 GB =)

Крайне рекомендую такие процессы запускать через утилиты screen, так как связь может оборваться, соответственно и оборвется процесс восстановления базы данных, и придется запускать все сначала.

 

Янв 212021
 

Недавно разворачивал репликацию на MySQL, была тестовая виртуалка с необходимой базой, я ее клонировал, дабы сократить время на дамп базы.
Подготовил мастер и слейв сервер, все запустилось, при проверке статуса слейва, получил данную ошибку:

Last_IO_Errno: 1593
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

Все оказалось крайне просто, на слейве необходимо было удалить файл auto.cnf в директории

/var/lib/mysql/auto.cnf

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

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

И смотрим на ошибки

Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:

Ошибок нет, все отлично!

Окт 182012
 

В этой заметке я напишу как просто и с минимальной затратой времени установить на машину apache, php, mysql и веб-морду phpmyadmin. Работаем с заметкой и консолью в режиме «копи-паст» 🙂


Установка Apache2 и PHP5

Устанавливаем апач и пхп. В процессе установки нам будет предложено установить сопутствующие пакеты, с чем мы соглашаемся.
aptitude install apache2 php5 libapache2-mod-php5
Если нужно, то редактируем конфигурацию апача:
# nano /etc/apache2/apache2.conf
Стандартная папка веб-сервера находится по адресу /var/www, но по нужде ее можно легко изменить в файле конфигурации хоста:
# nano /etc/apache2/sites-available/default
Включим мудуль mod_rewrite:
a2enmod rewrite
Теперь перезагружаем apache:
service apache2 restart
или
/etc/init.d/apache2 restart

Теперь проверям как работает пхп:

echo '<?php phpinfo() ?>' > /var/www/index.php

http://ваш_сайт/index.html — проверка работы apache (надпись «It works!»)
http://ваш_сайт/index.php — проверка работы php (версия пхп и прочая информация)

У меня всё прекрасно работает потому идем дальше…


Уставновка MySQL и phpMyAdmin

Устанавливаем mysql и сопутствующие пакеты:
# aptitude install mysql-server mysql-client php5-mysql
В процессе установки указываем пароль для пользователя root базы данных.

Теперь поставить phpmyadmin:
# aptitude install phpmyadmin
Выбираем apache2 в роли веб-сервера, соглашаемся с настройкой phpmyadmin с помощью dbconfig-common и вписываем пароль пользователя root базы данных (во время установки mysql мы его указывали).
Добавляем в конец файла настроек апача /etc/apache2/apache2.conf строку Include /etc/phpmyadmin/apache.conf
nano /etc/apache2/apache2.conf
и перезапускаем apache:
service apache2 restart
или
/etc/init.d/apache2 restart

Проверяем…
http://ваш_сайт/phpmyadmin

Если видим страничку авторизации в панель, то у нас всё получилось 🙂

 Posted by at 20:06
Окт 232011
 

В прошлой статье я описывал как устанавливается SysCP, но статья подразумевала уже установленные Apache, PHP и MySQL-сервер. Решил в этой статье вернутся назад и описать установку основы для вэб-сервера.

Apache

Поставим первым делом апач. Заходим в терминал и пишем следующее:
#sudo apt-get install apache2
Указываете пароль и соглашаетесь с утановкой (так будет всегда). Когда установка закончится введите браузере http://localhost/ (можно также вписать ip компа).
Если страница радосно напишет «It works!», значит все прошло успешно.

PHP

Следующим этапом будем ставить PHP. Ставим так:
#sudo apt-get install php5 libapache2-mod-php5
Перезагрузим апач, чтобы изменения вступили в силу
#sudo /etc/init.d/apache2 restart
Для теста работы пхп создадим файлик test.php со следующим кодом:
<?php
phpinfo();
?>

Смотрим, что у нас получилось: Continue reading »

 Posted by at 02:22
Сен 172011
 

Сегодня понадоилось заменить в таблице записи, но не все, а только некоторые. У меня было значение 5, которое я хотел заменить на 1. Помимо этого были значени 2, 3 и 4, которые должны остатся прежними. Найти инфу по этому запросу не тяжело, но на поиски надо время, потому выкладываю сюда, чтобы на будущее не искать 🙂

В теории запрос выглядит так:

UPDATE таблица SET поле=значение(на которое меняем) WHERE поле=значение(которое существует)

А на примере вот:

UPDATE g13_bublik SET bublik _type=1 WHERE bublik _type=5

g13_bublik — таблица
bublik _type — поле
1 — нужное значение
5 — существующее значение

 Posted by at 14:54
Авг 202011
 

В прошлой статье Создание и удаление баз данных описывалось как создать базу данных. Но, в этой базе нужно создать еще таблицу, собственно с которой мы и будем работать в дальнейшем.

Создание таблицы в базе данных

Создание таблицы производится командой CREATE TABLE.

CREATE TABLE table_name(column_name1 type, column_name2 type,...)

table_name — имя новой таблицы;
column_name — имена колонок (полей), которые будут присутствовать в создаваемой таблице.
type — определяет тип создаваемой колонки.

Пример

Нам нужно создать таблицу телефонных номеров друзей.
Наша таблица будет состоять из трех столбцов: ФИО, адрес и телефон.

CREATE TABLE contacts(fio text, address text, tel text)

В PHP это будет так:
$sql="CREATE TABLE contacts(fio text, address text, tel text)";
mysql_query($sql);

К типу данных можно присоединить модификаторы, которые задают его «поведение» и те операции, которые можно (или, наоборот, запрещено) выполнять с соответстующими столбцами.

not null — означает, что поле не может содержать неопределенное значение, т.е. поле обязательно должно быть инициализировано при вставке новой записи в таблицу (если не задано значение по умолчанию).

Например, для нашей таблицы с телефонами нужно указать, что поле с ФИО друга (поле fio) и его телефоном (поле tel) не может иметь неопределенного значения:

CREATE TABLE contacts(fio text NOT NULL, address text, tel text NOT NULL)

primary key — отражает, что поле является первичным ключом, т.е. идентификатором записи, на который можно ссылаться.

CREATE TABLE contacts(fio text, address text, tel text, PRIMARY KEY (fio))

auto_increment — при вставке новой записи поле получит уникальное значение, так что в таблице никогда не будут существовать два поля с одинаковыми номерами.

CREATE TABLE contacts(fio text AUTO_INCREMENT, address text, tel text)

default — задает значение по умолчанию для поля, которое будет использовано, если при вставке записи для этого поля небыло явно указано значение.

CREATE TABLE contacts(fio text, address text DEFAULT 'Не указан', tel text)

Удаление таблицы в базе данных

Continue reading »

 Posted by at 02:22
Авг 202011
 

Создание базы данных

Для создания базы данных используют команду CREATE DATABASE.

CREATE DATABASE my_database
my_database — имя базы данных, которую мы хотим создать.

Пример

Нам нужно создать базу данных с именем test_db.
Создаем базу данных запросом:
CREATE DATABASE test_db

Создаем базу данных через PHP:
$sql="CREATE DATABASE test_db";
mysql_query($sql);

Удаление базы данных

Для удаления базы данных воспользуемся командой DROP DATABASE.

DROP DATABASE my_database
my_database — имя базы данных, которую нужно удалить.

Пример

Нам нужно удалить базу данных с именем test_db.

Удаляем запросом:
DROP DATABASE db_test

Удалить базу через PHP:
$sql="DROP DATABASE db_test";
mysql_query($sql);

 Posted by at 02:02
Авг 202011
 

Решил понемногу изучать азы MySQL, ато получается, что знаком и не знаком с ней одновременно. Память у меня не резиновая и пользоватся этими знаниями постоянно мне тоже врятли понадобится. Для быстрого поиска нужной инфы я и буду её тут размещать. Что ж, поехали…

Как видно с названия, разговор пойдет о типах данных в БД Мускула (он же MySQL).

Строковые типы

При занесении некоторого значения в поле такого типа из него автоматически вырезаются концевые пробелы.

VARCHAR — Может хранить не более 255 символов.
TINYTEXT — Может хранить не более 255 символов.
TEXT — Может хранить не более 65 535 символов.
MEDIUMTEXT — Может хранить не более 16 777 215 символов.
LONGTEXT — Может хранить не более 4 294 967 295 символов.
Чаще всего применяется тип TEXT, но если вы не уверены, что данные не будут превышать 65 536 символов, используйте LONGTEXT.

Бинарные данные

Бинарные данные — это почти то же самое, что и данные в формате TEXT, но только при поиске в них учитывается регистр символов.

TINYBLOB — Может хранить не более 255 символов.
BLOB — Может хранить не более 65 535 символов.
MEDIUMBLOB — Может хранить не более 16 777 215 символов.
LONGBLOB — Может хранить не более 4 294 967 295 символов.
BLOD-данные не перекодируются автоматически, если при работе с установленным соединением включена возможность перекодирования текста «на лету».
Continue reading »

 Posted by at 01:52
Авг 202011
 

Казалось бы банальный вопрос, но многие не знают ответа на него. Чесно говоря, я тоже не знал. 🙂
На nix-ах делается следующим образом.

Открываем файл /etc/my.cf и описываем в него следующее:

[mysqld]
...
log-queries-not-using-indexes
log=/var/log/mysql/mysql-queries.log
log-error=/var/log/mysql/mysql-errors.log
log-slow-queries=/var/log/mysql/mysql-slow-queries.log
...

Файлы могут сами не появится, потому лучше их создать и выдать права самому.

touch /var/log/mysql/mysql-queries.log
touch /var/log/mysql/mysql-errors.log
touch /var/log/mysql/mysql-slow-queries.log
chown mysql:mysql /var/log/mysql/mysql*
chmod 640 /var/log/mysql/mysql*

Теперь осталось перезапустить сервис:
service mysqld restart

Вот и всё. 🙂

 Posted by at 01:17
Май 042011
 

В очередной раз понадобилось ковырять базу, на этот раз дела были хреновые, залили вирус на один сайт через жаба код.
Делалось это таким запросом

delete FROM `dle_post` WHERE full_story LIKE '%<script src="http://googglle.org/%';

Вроде все почистил, ждем перепроверки сайта 🙂