- В InnoDB при записи блокируется строка, в MyISAM - вся таблица. Поэтому там, где планируется большое кол-во запросов на запись, выгоднее использовать InnoDB.
- В InnoDB поддерживаются транзакции.
- В InnoDB поддерживаются внешние ключи.
- В MyISAM поддерживается сжатие таблиц.
- Данные InnoDB хранятся в одном файле, а в MyISAM в на каждую таблицу свой. Поэтому периодически MyISAM данные нужно оптимизировать.
- В InnoDB при восстановлении от сбоя используется лог транзакций. В MyISAM для восстановления нужно сканировать таблицы. При увеличении объёма MyISAM данных увеличивается и время восстановления. В InnoDB восстановление занимает одно и то же время.
- В InnoDB есть необходимость периодически сбрасывать данные в лог.
- В MyISAM есть встроенный полнотекстовой поиск.
- В InnoDB возможны взаимоблокировки процессов (deadlock).
Комментариев: 0
07.12.2012 07:16
Узнаём в какой кодировке хранятся данные:
mysql -u root -e 'show create database `dbname`' +------------------------------------------------------------------+ | Create Database | +------------------------------------------------------------------+ | CREATE DATABASE `itvault` /*!40100 DEFAULT CHARACTER SET utf8 */ | +------------------------------------------------------------------+
Делаем дамп:
mysqldump -u root --default-character-set=utf8 dbname > dump.sql
Узнаём в какой кодировке работает mysql-клиент на сервере назначения:
mysql -u root -e "show variables like '%char%'" +--------------------------+----------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/local/share/mysql/charsets/ | +--------------------------+----------------------------------+
Заливаем дамп в правильной кодировке:
mysql -u root --default-character-set=latin1 dbname < dump.sql
Комментариев: 0
28.10.2012 16:55
Останавливаем MySQL
service mysql stop # или так: mysqladmin -uroot shutdown # или можно так: ps aux | grep mysql # эта команда выведет pid mysqld процесса kill <pid> # еще можно так: kill `cat /var/run/mysql/mysql.pid` # путь к pid-файлу процесса может быть другой! # по-умолчанию pid-файл создаётся в <basedir>/data
Запускаем MySQL и меняем пароль
mysqld_safe --skip-grant-tables --user=root &
-- далее запрос на смену пароля
UPDATE mysql.user SET Password=PASSWORD('newpass') WHERE User='root';
-- Выходим из MySQL
exit
Перезагружаем MySQL
service mysql restart
Иногда, при обновлении, mysql пользователю root@localhost по-умолчанию выставляется тип авторизации auth_socket и после этого невозможно залогиниться. Чтобы исправить, надо загрузить mysql способом описанным выше и выполнить запрос:
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'root';
Комментариев: 0
12.12.2011 09:51
Создание локального пользователя с правами только на определённую базу данных:
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; GRANT USAGE ON `table`.* TO 'user'@'localhost' IDENTIFIED BY 'password' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; GRANT ALL PRIVILEGES ON `table`.* TO 'user'@'localhost';
Комментариев: 0
15.08.2011 12:44
Страница 2 из 2
1
2