Восстановление базы данных 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), определяющего зависимость данных в одной таблице от данных в другой таблице.
Каждая таблица имеет собственную структуру (заданный набор столбцов). Просмотреть структуру таблицы можно так:
DESCRIBE tablename;
SHOW TABLE STATUS;
SHOW DATABASES;
— список баз данных
SHOW TABLES [FROM db_name];
— список таблиц в базе
SHOW COLUMNS FROM таблица [FROM db_name];
— список столбцов в таблице
SHOW CREATE TABLE table_name;
— показать структуру таблицы в формате «CREATE TABLE»
SHOW INDEX FROM tbl_name;
— список индексов
SHOW GRANTS FOR user [FROM db_name];
— привилегии для пользователя.
SHOW VARIABLES;
— значения системных переменных
SHOW [FULL] PROCESSLIST;
— статистика по mysqld процессам
SHOW STATUS;
— общая статистика
SHOW TABLE STATUS [FROM db_name];
— статистика по всем таблицам в базе
Свежие комментарии