Вопрос. Что такое MySQL? MySQL – сервер баз
данных. MySQL характеризуется большой скоростью, устойчивостью и легкостью в
использовании, является идеальным решением для малых и средних приложений.
Вопрос. Где можно взять MySQL? На официальном сайте
http://www.mysql.com или на http://www.mysql.ru/download. Рекомендуем брать с
сервера последнюю стабильную версию.
Вопрос. Хочу изучать MySQL. С чего начать? Советуем начать изучение
с раздела документация. Из нее вы не только узнаете начальные сведения, но, и
самое главное, освоите правильные приемы работы.
Вопрос.Что такое PHP? PHP – это скрипт-язык (scripting language),
который интерпретируется и выполняется на сервере.
Вопрос. Что такое Perl? Perl - это аббревиатура, расшифровывающаяся
как Practical Extraction and Report Language (практический язык извлечений и
отчетов).
Технические вопросы:
Вопрос. Как увеличить производительность выполнения
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/*.ISM myisamchk -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? 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 "Сервис / Служебные программы /
Диспетчер связанных таблиц".
Вопрос.Как сделать таблицу Exel из таблицы
MySQL? #!/usr/local/bin/perl use 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;
Вопрос. Как использовать базу данных MySQL в своей программе? (под
Windows) Подключите к проекту libMySql.lib, положите заголовочные файлы из
поставки MySQL в директорию заголовочных файлов вашего компилятора, либо в
каталог с программой, либо вообще куда душе угодно (лишь бы сами их не
потеряли), libmysql.dll в каталог с программой, и пользуетесь функциями API
MySQL, которые подробнейшим образом описаны в поставляемой вместе с сервером
документацией. libmysql.lib и libmysql.dll берутся после установки дистрибутива
MySQL в каталоге libopt. libmysql.lib ОБЯЗАТЕЛЬНО должен работать с
libmysql.dll ТОЙ ЖЕ поставки/версии. По этой причине НАСТОЯТЕЛЬНО НЕ
рекомендуется хранить libmysql.dll в системном каталоге WINDOWS! Храните свою
libmysql.dll в каталоге со своей программой. Для C++ Builder получить
libmysql.lib нужно импортом из libmysql.dll: > implib libmysql.lib
libmysql.dll
Из заголовочных файлов
требуются: mysql.h mysql_com.h mysql_version.h В последних версиях
ещё и my_alloc.h Всё это добро берётся после установки дистрибутива MySQL в
каталоге include.
Из всех в программе подключается только mysql.h. Перед ним обязательно должно
быть подключен windows.h #include #include
Особенности Билдеровского VCL: В программах, использующих VCL, компилятор
ругается на my_socket, объявленную в mysql.h как #define my_socket SOCKET.
Заменяем на #define my_socket UINT_PTR и всё работает. (SOCKET в winsock.h
объявлен как typedef UINT_PTR SOCKET). |