ЛИНИЯ ВАШЕГО УСПЕХА

(495) 626-47-47 (круглосуточно) support@hostline.ru
Вход для клиентов Стать клиентом
Введите имя домена:
Вопросы по MySQL

Как увеличить производительность выполнения mysqldump?

При дампе очень больших таблиц mysqldump пытается использовать очень большой объем ОЗУ.Чтобы он этого не делал нужно использовать опцию "-q".


Как определить и исправить повреждение MySQL базы?

Для тестирования повреждений рекомендуется выполнять: myisamchk tables[.MYI]Параметры уровня проверки:--medium-check - средний--extend-check - расширенный
В crontab:35 0 * * 0 /usr/local/mysql/bin/myisamchk --fast --silent /path/to/datadir/*/*.MYI Внимание, myisamchk нужно запускать при _не_ запущенном mysqld, иначе нужно использовать утилиту mysqlcheck (mysqlcheck --repair --analyze --optimize --all-databases --auto-repair)
Восстановление таблицы:REPAIR TABLE tbl_name или myisamchk -r table_name или myisamchk --safe-recover table_name


Как произвести оптимизацию хранилища в MySQL?

Почистить "дырки" (дефрагментация), обновить статистику и отсортировать индексы:OPTIMIZE TABLE имя_таблицы;или использовать: myisamchk --quick --check-only-changed --sort-index --analyzeВнимание, myisamchk нужно запускать при _не_ запущенном mysqld, иначе нужно использовать утилиту mysqlcheck (mysqlcheck --repair --analyze --optimize --all-databases --auto-repair)
Апдейт статистики оптимизатора:ANALYZE TABLE имя_таблицы;или использовать: myisamchk --analyze
Рекомендуется регулярно выполнять:isamchk -r --silent --sort-index -O sort_buffer_size=16M db_dir/*.ISMmyisamchk -r --silent --sort-index -O sort_buffer_size=16M db_dir/*.MYI

Как бэкапить данные в MySQL?

Бэкап структуры:mysqldump --all --add-drop-table [--all-databases] --force [--no-data] [-c] --password=password --user=user [база] [таблицы] > backup_file( -c - формировать в виде полных INSERT. --all-databases - бэкап всех баз, --no-data - бэкап только структуры таблиц в базах, [таблицы] - бэкапить только указанные таблицы.)
Восстановление: mysql < backupfile(для прямой вставки из текстового файла можно воспользоваться mysqlimport)(для анализа структуры базы, например, списка таблиц: mysqlshow <база>)

Как обеспечить корректную работу MySQL с русскими символами при сортировке и выборке данных?

В /etc/my.cnf вписать в блоке [mysqld]: default-character-set=koi8_ru (или cp1251)
При работе с базой можно выставить рабочую кодировку через: SET CHARACTER SET koi8_ru


Как добавить нового пользователя или БД в MySQL?

use mysql;insert into user (host,user,password) values ('localhost', 'пользователь', password('пароль'));
insert into db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv, Drop_priv,Grant_priv,References_priv,Index_priv,Alter_priv) values ('localhost','БД','пользователь','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); flush privileges;
или воспользоваться скриптом mysql_setpermission

Как изменить забытый MySQL административный пароль?

1. перезапустить mysqld с опцией --skip-grant-tables

2. mysqladmin -h хост -u пользователь password 'новый пароль'

Как работать с базой данных MySQL из Access?

Необходимо скачать MyODBC и установить, после этого в Access в базе данных - "создать / связь с таблицами" - тип файлов указываем ODBC . Для обновления таблиц удобно пользоваться служебной утилитой Access2000 "Сервис / Служебные программы / Диспетчер связанных таблиц".

Как сделать таблицу Excel из таблицы MySQL?

#!/usr/local/bin/perluse DBI;$table = "table"; $db = "base"; $db_serv = "192.168.0.1"; $user = "user"; $passwd = "password";$c = DBI->connect("DBI:mysql:$db:$db_serv", $user, $passwd);$statement = "select count(*) from $table";$cc = $c->prepare($statement);$ccc = $cc->execute;@row = $cc->fetchrow_array;$n = $row[0];$statement = "select * from $table";$cc = $c->prepare($statement);$ccc = $cc->execute;open F, "$ARGV[0]";for ($i=0; $i<$n; $i++) {@row = $cc->fetchrow_array;print F "$row[0];$row[1];$row[3]n";}
Запускаем скрипт:./mysql_2_exel.pl fileПосле этого можно открыть файл 'file' экселем.

Как поместить время в формате Epoch в MySQL?

from_unixtime(989493919)

Как ограничить число элементов выдаваемых SELECT в MySQL?

Необходимо воспользоваться LIMIT. Первый параметр с какой записи, а второй сколько.select * from table LIMIT 1,1;

Как разрешить пользователю доступ к базе данных?

GRANT ALL PRIVILEGES ON *.* TO usernameS@hostname IDENTIFIED BY 'userpassword' WITH ALL PRIVILEGES;

Как запретить пользователю операции с базой данных?

Revoke ALL PRIVILEGES on *.* from usernameS@hostname;

Как получить случайный ряд из таблицы MySQL?

SELECT * FROM table ORDER BY RAND() LIMIT 1;

Как выполнить поиск по регулярному выражению?

Вот например так

mysql> select rec_id from rec where rec_id regexp "^1[0]+$" limit 10;

rec_id
10
100
1000

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