Использую в своей работе самописный скрипт для резервного копирования баз MySQL. Для бекапа используются следующие параметры:
MYSQL_PARAM=»—add-drop-table —user=$mysql_user —password=$mysql_passwd —databases —ignore-table=mysql.event »
При выполнении скрипта на консоль выводится сообщение:
«Warning: Using a password on the command line interface can be insecure.»
Читать далее »
Восстановление базы данных MySQL из дампа
Восстановление базы из дампа происходит через Unix Shell, с использованием утилиты mysql:
>mysql -u<логин> -p -h<хост> -P<порт> -D <база> < database.sql
Бывает при восстановлении дампа получаются ошибки, например такие:
/usr/local/mysql/bin/mysql -D db_test --password=secret_passowrd --user=user < /root/test.sql ERROR 1064 at line 161: You have an error in your SQL syntax near 'option varchar(50) NOT NULL default , ordering int(11) NOT NULL default '0',' at line 9
Обычно это означает что какое-то имя столбца MySQL принял за ключевое слово, в этом случае нужно отредактировать дамп на указанной строчке (161) например с помощью Vi: имя столбца (в данном примере option) нужно заключить в `обратные кавычки`. Чтобы этого не происходило можно было при создании дампа запускать mysqldump с ключем --quote-name
Изменение структуры таблицы MySQL
Иногда структуру созданную с помощью CREATE TABLE нужно изменить. Проще всего это сделать на пустой таблице, иначе нужно смотреть чтобы в итоге преобразования не потерялись какие-то нужные данные. В любом случае, если вы делаете это первый раз, создайте заранее резервную копию базы. Изменение структуры:
Переименовать таблицу:
ALTER TABLE myfirsttable RENAME mysecondtable;
Читать далее »
Создание структуры таблицы MySQL
CREATE TABLE test_innodb (
id int(11) NOT NULL auto_increment,
PRIMARY KEY (id)
— основной ключ
) TYPE=InnoDB;
CREATE TABLE categories (
catid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
category VARCHAR(100) NOT NULL
);
CREATE TABLE items (
itemid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
catid INT,
FOREIGN KEY (catid) REFERENCES categories (catid),
— внешний ключ
itemname VARCHAR(100) NOT NULL,
— не может быть не заданно
itemdesc VARCHAR(255) NOT NULL,
imageurl VARCHAR(100),
itemcounter INT DEFAULT '1',
-- значение по умолчанию '1'
access INT
);
Здесь нужно обратить внимание на понятия основного ключа (PRIMARY KEY), определяющего однозначно
каждую строку таблицы и внешнего ключа (FOREIGN KEY), определяющего зависимость данных в одной таблице от данных в другой таблице.
Свежие комментарии