- Работаем с MySQL через командную строку
- Что делать если вижу знаки вопросов вместо текста в MySQL?
- Как сделать бэкап базы mysql через консоль Linux?
- Заключение
- Комментарии 2
- Работа с MySQL базами данных в консоли Linux
- Подключение
- Создание
- Просмотр
- Операции
- MySQL шпаргалки
- Работа с бекапами
- Общие факты
- Работа с данными
- Отладка
- Linux.yaroslavl.ru
Работаем с MySQL через командную строку
День добрый, друзья! 🙂 Для подключения к mysql наберите
- h — хост базы данных, если коннектимся к локальной базе (по ip 127.0.0.1), этот параметр можно опустить
- u — имя пользователя
- p — пароль, его нужно будет ввести после нажатия enter
Например, если нужно законнектиться к локальной быдухе под root`ом и пароль у него не установлен (пустой пароль — это плохо), достаточно написать
Если на экране появляется приветствие mysql, то всё прошло ok.
Для выхода из командной строки mysql можно написать exit, в linux достаточно нажать ctrl+C. Теперь можно писать любые mysql-запросы. Чтобы запрос выполнился, в конце обязательно нужно поставит точку с запятой «;». При написании длинных запросов удобно делать enter`ом переход на следующую строку. А после полного написание запроса поставить «;» и нажать «enter».
Для работы с конкретной базой данных нужно её выбрать с помощью оператора use. Показать все базы данных:
Результатом будет что то вроде этого:
Выбрать базу данных jeka:
Посмотреть названия всех таблиц в конкретной базе данных (после выполнения use):
Просмотреть структуру таблицы (имена и тип полей):
Достать информацию о юзере с >
Бэкап структуры таблицы, а точнее sql-запрос на её создание
Если в конце запроса поставить не ; а \G, то результат будет показан другим образом — иногда весьма удобно, если таблица имеет много полей:
Посмотреть, какие запросы выполняются в данный момент на сервере MySQL:
Учтите, что будут отображены еще не выполненные (активные) запросы, поэтому show processlist; актуальная команды только для нагруженных БД, в других случаях маловероятно, что команда что то покажет.
Подробнее о том, как изменять структуру mysql-таблиц (alter table).
Что делать если вижу знаки вопросов вместо текста в MySQL?
Это проблема с кодировкой. Вероятно в my.ini файле mysql-сервера не добавлено:
Нужно добавить в .ini файл либо выполнить в консоли команду «SET NAMES utf8», после чего во время текущей сессии отображаться русский текст в mysql-консоли будет без проблем:
Как сделать бэкап базы mysql через консоль Linux?
Сделать бэкап базы database в файл dump_name.sql
[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_name.sql] – имя файла, дампа на выходе.
Развернуть базу из файла через командную строку
[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_to_restore.sql] – имя файла, из которого поднимаем базу
Сделать дамп структуры одной таблицы mysql (без данных):
Например, задампим таблицу users из базы данных mydatabase:
Развернуть mysql-dump в БД с именем database_name:
Ещё одна интересная штука. Выполнять из консоли, не требуется предварительно подключаться к mysql (mysql>). Вывести список таблиц базы данных, не подключаясь непосредственно к mysql:
Заключение
Может показаться, что писать запросы в командной строке не удобно. Но это заблуждение. На слабых машинах phpmyadmin работает не так шустро как хотелось бы. Тем более не на всех серверах стоят морды с phpmyadmin, adminer и т.д. Linux + mysql в терминале реально повысили мою производительность.
- Как обновить AI в mysql? Решено!
- Узнать, насколько slave отстает от master в mysql Решено!
- На PHP Access denied for user ‘root’@’localhost’, хотя через консоль подключается 1 ответ
- Как очистить все таблицы в базе данных mysql? 0 ответов
- mysqldump только структуры таблиц 1 ответ
- MySQL — изменение полей, структуры таблицы 0 комментариев
- Запросы инъекции для mysql 0 комментариев
- Доступ к mysql из-вне3 комментария
- Mysql перенос таблиц из одной базы данных в другую 0 комментариев
- Анализ производительности MySQL с использованием performance_schema 0 комментариев
Комментарии 2
Viktor, спасибо. Судя по скринам, штука интересная.
Правда, уж больно много зависимостей она имеет.. Как решу проблему с зависимостями, отпишусь.
eugene-PC:www eugene$ eugene$ sudo rpm -ivh
Источник
Работа с MySQL базами данных в консоли Linux
Долгое время все основные операции с MySQL-базами я проводил в веб-интерфейсе — посредством обычной хостинг-панели и утилиты PhpMyAdmin. В таком формате все администрирование базы данных ложилось на плечи приложения PhpMyAdmin, которое написано на языке PHP и зависит от разных факторов, например конфигурации веб-сервера, версий программного обеспечения и самого PHP. Когда количество баз данных растет, а окружения постоянно меняются, MyPhpAdmin требует дополнительных ресурсов и настройки, иначе может работать не совсем стабильно, например срабатывают ошибки, лимиты и таймауты. Да и сам веб-интерфейс имеет свои ограничения, поэтому для серьезных задач профессионалы используют только командную строку. Как выяснилось, это намного быстрее, стабильнее и безопаснее. В этой заметке хочу поделиться основными командами для работы с MySQL/MariaDB в консоли VPS-сервера под управлением ОС Linux.
Подключение
mysql -u username -p #подключение к MySQL-серверу от имени пользователя
mysql -u username -p databasename #подключение к базе данных от имени ее пользователя
exit #покинуть базу данных и оборвать соединение с MySQL-сервером
Создание
CREATE DATABASE databasename; #создать базу данных с указанным именем
SHOW CREATE DATABASE databasename; #создание базы данных с выводом параметров
CREATE DATABASE `databasename` CHARACTER SET utf8 COLLATE utf8_general_ci; #создание базы данных с указанными параметрами (кодировка utf8)
CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘userpassword’; #создать пользователя базы данных с именем и паролем
GRANT ALL PRIVILEGES ON databasename.table_of_database TO ‘username’@’localhost’; #предоставить пользователю права доступа к базе данных и ее таблице
GRANT ALL PRIVILEGES ON databasename.* TO ‘username’@’localhost’; #предоставить пользователю права доступа ко всем таблицам указанной базы данных
GRANT ALL PRIVILEGES ON *.* TO ‘username’@’localhost’; #предоставить пользователю права доступа ко всем базам данных и таблицам
GRANT SELECT, INSERT, DELETE ON databasename.* TO ‘username’@’localhost’; #предоставить пользователю ограниченные права доступа с возможностью выбирать базу данных, вставлять строки в таблицы, удалять строки
FLUSH PRIVILEGES; #применить, чтобы установленные права доступа для пользователя вступили в силу
REVOKE ALL PRIVILEGES ON databasename.* TO ‘username’@’localhost’; #отменить все права доступа к указанной базе данных и всем ее таблицам для пользователя
Просмотр
SHOW DATABASES; #показать все базы данных
USE databasename; #перейти в указанную базу данных
SHOW TABLES; #показать все таблицы текущей базы данных
SELECT * FROM tablename; #показать содержание указанной таблицы базы данных
SELECT User FROM mysql.user; #вывести на экран всех пользователей MySQL
SELECT User, Host FROM mysql.user; #вывести на экран всех пользователей MySQL и их хосты
SELECT User, Host, Password FROM mysql.user; #вывести на экран всех пользователей MySQL, их хосты и пароли (количество параметров можно добавлять)
SHOW GRANTS; #просмотр всех привилегий активного пользователя
SHOW GRANTS FOR ‘username’@’localhost’; #показать права доступа (привилегии) для указанного пользователя базы данных
Операции
DROP DATABASE databasename; #удалить базу данных
DROP USER ‘username’@’localhost’; #удалить пользователя базы данных
SET PASSWORD FOR ‘username’@’localhost’ = PASSWORD(‘newpassword’); #установить пароль для пользователя базы данных
RENAME TABLE tablename TO newtablename; #переименовать название ранее выбранной таблицы базы данных (выбор с помощью USE)
DELETE FROM tablename WHERE fieldname = ‘name’; #удалить строку из указанной таблицы
ALTER TABLE tablename DROP INDEX columnname; #удалить столбец из базы данных
TRUNCATE TABLE Tablename; #полное удаление содержимого таблицы базы данных
mysqldump -u username -p databasename > dump_file.sql #создание резервной копии базы данных (дамп)
mysqldump -u root -p -B dbname1 dbname2 > dump.sql #создание дампа выбранных баз данных
mysqldump -u root -p -A > dump.sql #дамп всех баз данных
mysql -u root -p namedatabase #восстановление или импорт дампа базы данных
SHOW GLOBAL STATUS; #вывести на экран статистику MySQL-базы данных
Источник
MySQL шпаргалки
Часто, когда разрабатываешь сайт, замечаешь, как на одни и те же грабли наступают разработчики при проектировании базы данных.
Сегодня я решил опубликовать свои шпаргалки, на самые часто встречающиеся ошибки при работе с MySQL.
Работа с бекапами
Делаем бекап
mysqldump -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql
Создаём структуру базы без данных
mysqldump —no-data — u USER -pPASSWORD DATABASE > /path/to/file/schema.sql
Если нужно сделать дамп только одной или нескольких таблиц
mysqldump -u USER -pPASSWORD DATABASE TABLE1 TABLE2 TABLE3 > /path/to/file/dump_table.sql
Создаём бекап и сразу его архивируем
mysqldump -u USER -pPASSWORD DATABASE | gzip > /path/to/outputfile.sql.gz
Создание бекапа с указанием его даты
mysqldump -u USER -pPASSWORD DATABASE | gzip > `date +/path/to/outputfile.sql.%Y%m%d.%H%M%S.gz`
Заливаем бекап в базу данных
mysql -u USER -pPASSWORD DATABASE
Заливаем архив бекапа в базу
gunzip
или так
zcat /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
Создаём новую базу данных
mysqladmin -u USER -pPASSWORD create NEWDATABASE
Удобно использовать бекап с дополнительными опциями -Q -c -e , т.е.
mysqldump -Q -c -e -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql , где:
- -Q оборачивает имена обратными кавычками
- -c делает полную вставку, включая имена колонок
- -e делает расширенную вставку. Итоговый файл получается меньше и делается он чуть быстрее
Для просмотра списка баз данных можно использовать команду:
mysqlshow -u USER -pPASSWORD
А так же можно посмотреть список таблиц базы:
mysqlshow -u USER -pPASSWORD DATABASE
Для таблиц InnoDB надо добавлять —single-transaction, это гарантирует целостность данных бекапа.
Для таблиц MyISAN это не актуально, ибо они не поддерживают транзакционность.
Общие факты
- Полезно под каждую базу на боевом сервере создавать своего пользователя
- Кодировка базы может быть любой, если она UTF8
- В большинстве случаев лучше использовать движок InnoDB
- В php лучше забыть про сильно устаревшее расширение mysql и по-возможности использовать pdo или mysqli
- Новую копию MySQL всегда можно настроить и оптимизировать
- Без особой нужды не стоит открывать MySQL наружу. Вместо этого можно сделать проброс портов
ssh -fNL LOCAL_PORT:localhost:3306 REMOTE_USER@REMOTE_HOST
Работа с данными
Числа
- На 32-битных системах практически нет смысла ставить для типа INTEGER свойство UNSIGNED, так как такие большие числа в php не поддерживаются.
На 64-битных системах, php поддерживает большие числа, вплоть до MySQL BIGINT со знаком. - Связанные таблицы («Foreign keys») должны иметь полное сходство по структуре ключей. Т.е. если у нас на одной таблице для поля указано «INTEGER UNSIGNED DEFAULT 0 NOT NULL» то и на другой должно быть указано аналогично
- Для хранения булевых значений, нужно использовать TINYINT(1)
- А деньги лучше хранить в DECIMAL(10, 2), где первое число обозначает количество всех знаков, включая запятую, а второе — количество знаков после запятой. Итого, у нас получится что DECIMAL(10,2) может сохранить 9999999,99
Строки
- В старых версиях (до 5.0.3) VARCHAR была ограничена 255 символами, но сейчас можно указывать до 65535 символов
- Помните, что тип TEXT ограничен только 64 килобитами, поэтому что бы сохранять «Войну и Мир» пользуйтесь «LONGTEXT»
- Самая правильная кодировка для вашей БД UTF8
Не забывайте, что
- DATE, TIME, DATETIME — выводятся в виде строк, поэтому поиск и сравнение дат происходит через преобразование
- TIMESTAMP — хранится в виде UNIX_TIMESTAMP, и можно указать автоматически обновлять колонку
- Сравнивая типы данных DATETIME и TIMESTAMP, не забывайте делать преобразование типов, например:
SELECT * FROM table WHERE `datetime` = DATE(`timestamp`)
Перечисления
Отладка
- Если запросы тормозят, то можно включить лог для медленных запросов в /etc/mysql/my.cnf
- А потом оптимизировать запросы через EXPLAIN
- И наблюдать за запросами удобно через программу mytop
Пожалуйста, сообщите мне, если вы заметили неточность или есть желание поделиться советом или шпаргалкой.
Источник
Linux.yaroslavl.ru
СУБД MySQL поставляется приходит со следующими основными программами и скриптами.
- mysql
- mysqlaccess
- mysqladmin
- mysqld
- mysqldump
- mysqlshow
- isamchk
- isamlog
- safe_mysqld
Еще есть несколько утилит. Они не жизненно важны для MySQL, но обеспечивают полезные дополнительные функциональные возможности.
Клиентская программа MySQL.
mysql [OPTIONS] database
Клиентская часть СУБД MySQL названа MySQL. Она обеспечивает интерфейс командной строки с СУБД MySQL, и возможность неинтерактивной пакетной обработки.
Программой mysql поддерживаются следующие опции. Вы можете использовать или «короткий» одиночный символ или более подробную версию.
-\?, —help | Справка. |
-d, | Вывести в протокол отладочную информацию. В общем виде ‘d:t:o,filename`. Подробности в главе о библиотеке отладки. |
-d, | Вывести отладочную информацию при выходе из программы. |
-e, —exec | Выполнить команду и выйти, неявная форма опции —batch. |
-f, —force | Продолжить, даже если мы сталкиваемся с SQL ошибкой. |
-h, —hostname=[hostname] | Задает имя сервера, с которым Вы желаете соединиться. |
-P, —port=[port] | Порт, для соединения с сервером MySQL. |
-p, —password=[password] | Пароль пользователя, для соединения с сервером MySQL. Обратите внимание, что не должно быть пробела между -p и паролем. |
-q, —quick | Быстрый (небуферизованный вывод), может замедлить сервер, если вывод приостановлен. |
-s, —silent | Работать молча (подавить вывод). |
-u, —user=[user] | Имя пользователя для соединения с сервером MySQL. Необязательно, если имя пользователя такое же, как ваш логин. По умолчанию именно ваш логин используется в качестве имени пользователя, что облегчает настройку. |
-v, —verbose | Подробный вывод. -v опция может быть удвоена или утроена для более подробного вывода. В программах русских авторов обычно именуется «уровнем болтливости программы». |
-w, —wait | Если подключение терпит неудачу, то подождать и повторить попытку. |
-B, —batch | Выполнить в пакетном режиме. Никаких запросов и никаких ошибок в STDOUT. Устанавливается автоматически при чтении из/записи в канал (пайп). Результаты будут выведены в формате с разделением табуляцией. Одна строка результата соответствует одной строке вывода. |
-I, —help | Справка, эквивалент -\? . |
-V, —version | Вывести информацию о версии пакета. |
В интерактивном режиме mysql будет печатать результаты в таблице подобно примеру, приведенному ниже. Если не задан пароль или имя пользователя mysql попробует зайти в систему на сервере базы данных с использованием вашего логина и НУЛЕВОГО (ПУСТОГО) пароля. Если ваш mysql логин отличается от вашего логина в unix, или если вы имеете пароль, то это провалится.
Переведу этот пример на русский:
В режиме командной строки Вы должны иметь возможность работать с историей ввода и редактировать предыдущие команды. Это сильно облегчит работу.
В пакетном режиме результаты выводятся в виде полей, разделенных символами табуляции.
Создайте файл /tmp/test, который содержит следующую строку: В командной строке введите: Вы получите что-то вроде: Вы можете писать довольно сложные SQL программы, используя этот метод.
Проверка прав доступа пользователя.
СИНТАКСИС:
mysqlaccess [host] [user] [db] OPTIONS
Скрипт mysqlaccess используется, чтобы внести в список привилегии пользователя для конкретной базы данных. Это дает информацию, которая может быть полезна при диагностировании проблем с доступом пользователей к данной базе данных. Не забудьте, что всегда надо скомандовать: после внесения изменений в таблицы базы данных MySQL.
Скрипт mysqlaccess поддерживает следующие параметры (Вы можете использовать «короткий» одиночный символ или более подробную версию):
-?, —help | Справка. |
-v, —version | Информация о версии |
-u, —user=. | Имя пользователя для доступа к базе данных. |
-p, —password=. | Пароль пользователя, для соединения с сервером MySQL. Обратите внимание, что не должно быть пробела между -p и паролем. |
-h, —host=. | Имя сервера, используется для проверки прав доступа. |
-d, —db=. | Имя базы данных, используется для проверки прав доступа. |
-U, —superuser=. | Логин администратора. |
-P, —spassword=. | Пароль администратора. |
-b, —brief | Вывести краткие сведения о таблице. |
—relnotes | Вывести заметки по реализации. |
—plan | Вывести идеи для будущих реализаций. |
—howto | Вывести примеры использования `mysqlaccess’ |
—debug=N | Уровень отладки N (0..3) |
Вы должны указать по крайней мере имя пользователя и имя базы данных, которые Вы желаете проверить. Если имя сервера не задано, то подразумевается имя ‘localhost’.
«Групповые символы» (*. %, _) могут применяться при указании сервера, пользователя и db (базы данных). Убедитесь, что они не будут перехвачены вашей командной оболочкой unix.
mysqladmin [OPTIONS] command command.
Программа mysqladmin используется, для управления различными аспектами функционирования СУБД MySQL. Допустимы следующие опции (Вы можете использовать «короткий» одиночный символ или более подробную версию):
-\?, —help | Справка. |
-d, —debug=[options] | Вывести в протокол отладочную информацию. В общем виде ‘d:t:o,filename`. Подробности в главе о библиотеке отладки. |
-f, —force | Не спрашивать подтверждения при пропуске таблицы. |
-h, —host=[hostname] | Имя сервера, если не localhost. |
-i, —sleep=[seconds] | Выполнить команды несколько раз с паузой в [секунд] между ними. |
-p, —password[password] | Пароль пользователя, для соединения с сервером MySQL. Обратите внимание, что не должно быть пробела между -p и паролем. |
-u, —user=[user] | Имя пользователя. Если не указано, используется текущий логин. |
-P, —port=[port] | Порт, для соединения с сервером MySQL. |
-V, —version | Вывести информацию о версии. |
Кроме этого программа mysqladmin поддерживает следующие команды:
create [имя базы данных] | Создать базу данных. |
drop [имя базы данных] | Удалить базу данных (вместе со всеми таблицами). |
processlist | Вывести сведения о работающих потоках MySQL. |
reload | Перечитать настройки и очистить все кэши. |
shutdown | Завершить работу СУБД MySQL. Все запущенные MySQL-сессии помечаются как ‘killed’. Это означает, что все потоки, которые простаивают в настоящее время, будут закрыты немедленно, а управление потоками будет закрыто, когда они достигнут точек завершения, определенных сервером. Клиенты получат сообщение об ошибке ‘mysql server has gone away’. |
status | Вывести короткое сообщение о статусе сервера. |
version | Вывести информацию о версии. |
Обратите внимание: mysqladmin понимает сокращения. Например, Вы могли бы написать следующее: Это вывело бы версию mysqld и список всех активных в настоящее время потоков.
Вы можете использовать опцию -i=[секунд] для повтора команды каждые [секунд]. Это наиболее полезно с командой processlist.
Обратите внимание, что Вы можете использовать вышеупомянутые команды, только если Вы имеете соответствующие права доступа.
Серверная часть пакета MySQL (mysqld).
ОПИСАНИЕ:
Программа mysqld является ядром СУБД MySQL. Она запускается как демон в системе и принимает подключения из клиентских программ, выполняя запросы и возвращая результаты. Она многопоточная, то есть обработает больше чем один запрос одновременно.
Может наблюдаться спад производительности при использовании опции , поскольку при этом очень многое пишется в файл протокола. Непериодические изменения, обновления и удаления могут уменьшить производительность на 5-10%. Производительность может сильно понизиться на обновлениях, требующих большого числа одновременных изменений.
Опция может использоваться, для копирования базы данных. Обратите внимание, что ISAM журналы могут стать ОЧЕНЬ большими.
Каждая операция UPDATE, DELETE и INSERT имеет заголовок в 13 байтов дополнительно к команде.
Каждая открытая таблица требует девять байтов плюс длина имени файла таблицы. Это необходимо только для таблиц, которые еще не в кэше таблиц.
Кроме того будут иметься одиннадцать байтов дополнительно для любых команд, которые кэшируют/блокируют таблицы. Эти события обычно вызваны внутренними командами mysql. Наиболее часто, когда используется SELECT.
В большинстве случаев нужно выполнять mysqld из скрипта safe_mysqld .
Программа mysqld поддерживает следующие опции командной строки:
-\?, —help | Справка |
-#, —debug=[options] | Вывести в протокол отладочную информацию. В общем виде ‘d:t:o,filename`. Подробности в главе о библиотеке отладки. |
-b, —basedir=[path] | Полное имя каталога в который установлен пакет. |
-h, —datadir [homedir] | Полное имя каталога в котором хранятся базы данных. |
-l, | Имя файла протокола запросов к базам данных и подключений. |
Имя файла протокола изменений isam. | |
-O, var=option | Установить переменную. См. ниже. |
-L, —language=[language] | Значение по умолчанию ‘english/’. Может быть так же ‘swedish/’, ‘germany/’,’french/’ или ‘czech/’. Текущий список можно посмотреть в подкаталог share/mysql каталога, в который установлен MySQL. |
-P, —port=[port] | Порт для соединения. |
-T, | Вывести отладочную информацию. |
Не использовать новые (возможно, глючные) возможности этой версии. | |
Игнорировать таблицы предоставления доступа. Это дает любому ПОЛНЫЙ доступ ко всем таблицам. | |
Не использовать блокировку системы. Может дать лучшую эффективность, но не должен использоваться вместе с isamchk. ТО ЕСТЬ, сначала остановите сервер. | |
Эта опция заставит mysqld принимать адреса IP только тех серверов, которые явно указаны в базе данных привилегий mysql. DNS можно более или менее просто хакнуть, а эта опция позволяет избежать ряда проблем, если прикладная программа требует высокого уровня защиты. | |
Использовать подключения только через интерфейс localhost. Эта опция не будет работать с MIT потоками. Если подключения к базе данных будут только локальные, то использование этой опции защитит от создания удаленных подключений. | |
Пропустить возможно опасные оптимизации. | |
—socket=[socket] | Имя сокет-файла для MySQL. Недоступно при использовании версии MySQL, скомпилированной с MIT потоками. ПРИМЕР: |
-V, —version | Вывести информацию о версии. |
Если опция -h не определена, mysql будет считать, что основной каталог = «/my/data/sql/mysql» .
Все базы данных размещены в каталоге [homedir]/[имя базы данных] .
Опция -l должна использоваться осторожно. Когда используется сервер, с большим объемом транзакций, этот файл может стать большим очень быстро. Если Вы не определяете имя logfile, при использовании опции -l mysqld будет писать протокол в файл [homedir]/[hostname].log .
Опция -O позволяет Вам определять значения для следующих параметров:
Имя | Значение по умолчанию |
---|---|
back_log | 5 |
keybuffer | 1048568 |
max_allowed_packet | 65536 |
net_buffer_length | 8192 |
max_connections | 90 |
table_cache | 64 |
recordbuffer | 131072 |
sortbuffer | 2097144 |
max_sort_length | 1024 |
Информация относительно того, что эти значения делают, и как поднять эффективность mysqld, находится здесь.
mysqldump [OPTIONS] [database [table [field]]]
Программа mysqldump используется для создания дампа содержания базы данных MySQL. Она пишет инструкции SQL в стандартный вывод. Эти инструкции SQL могут быть переназначены в файл. Можно резервировать базу данных MySQL, используя mysqldump, но при этом Вы должны убедиться, что в этот момент с базой данных не выполняется никаких других действий. А то mysqldump Вам такого нарезервирует.
Программа mysqldump поддерживает следующие параметры (Вы можете использовать короткую или подробную версию):
-#, —debug=[options] | Вывести в протокол отладочную информацию. В общем виде ‘d:t:o,filename`. Подробности в главе о библиотеке отладки. |
-?, —help | Справка. |
-c, | Генерируйте полные инструкции insert (не исключая значений, которые соответствуют значениям столбца по умолчанию). |
-h, —host=[hostname] | Соединиться с сервером hostname. |
-d, | Экспорт только схемы информации (исключая данные). |
-t, | Экспорт только данных, исключая информацию для создания таблицы. Противоположность -d. |
-p, —password=[password] | Пароль пользователя, для соединения с сервером MySQL. Обратите внимание, что не должно быть пробела между -p и паролем. |
-q, —quick | Не буферизовать результаты запроса, дамп выдать непосредственно к STDOUT. |
-u, —user=[username] | Имя пользователя. Если не задано, используется текущий логин. |
-v, —verbose | Вывести подробную информацию относительно различных стадий выполнения mysqldump. |
-P, —port=[port] | Порт для связи. |
-V, —version | Информация о версии. |
Вы можете направить вывод mysqldump в клиентскую программу MySQL, чтобы копировать базу данных. ПРИМЕЧАНИЕ: Вы должны убедиться, что база данных не изменяется в это время, иначе Вы получите противоречивую копию!
mysqladmin create foo
mysqldump mysql | mysql foo
mysqlshow [OPTIONS] [database [table [field]]]
Программа mysqlshow может использоваться, чтобы показать, с какими базами данных MySQL работает, какие таблицы данная база данных содержит, и какие поля есть в таблице в данной базе данных.
Программа mysqlshow поддерживает следующие параметры (Вы можете использовать короткую или подробную версию):
-#, —debug=[options] | Вывести в протокол отладочную информацию. В общем виде ‘d:t:o,filename`. Подробности в главе о библиотеке отладки. Как мне надоела эта опция. |
-?, —help | Справка. |
-h, —host=[hostname] | Связаться с сервером hostname. |
-k, —key | Вывести ключ(и) для таблиц(ы). |
-p, —password=[password] | Пароль пользователя, для соединения с сервером MySQL. Обратите внимание, что не должно быть пробела между -p и паролем. |
-u, —user=[username] | Имя пользователя. Если не задано, используется текущий логин. |
-P, —port=[port] | Порт для связи. |
-V, —version | Информация о версии. |
mysqlshow без аргументов покажет все базы данных. mysqlshow с именем базы данных покажет все таблицы в ней. mysqlshow с именем базы данных и именем таблицы покажет схему этой таблицы.
Если последний параметр содержит ‘?’ или ‘*’, то они используются как подстановочные знаки.
mysqlshow test ‘a*’
показать список всех таблиц в базе данных test, начиная с ‘a’.
mysqlshow по существу идентичен программе mSQL msqlshow. СУБД MySQL обеспечивает, подобные функциональные возможности посредством команд языка SQL SHOW и DESCRIBE .
Программа isamchk используется для проверки непротиворечивости таблиц и устранения любых проблем, которые это может вызвать. Isamchk может также использоваться, чтобы усилить таблицы в базах данных, которые содержат BLOB или поля символов переменной длины. Это необходимо только, если Вы часто добавляете и удаляете записи из этих таблиц.
Необходимо остановить СУБД MySQL перед запуском isamchk с единственным переключателем -r .
Вообще, используйте переключатель -rq для ремонта таблицы, потому что он выполняет «оперативный» ремонт. Для такого ремонта не нужно временного места в памяти, таким образом он проходит быстро, так как isamchk не копирует файл данных.
Перед началом работы, надо перейти в каталог с таблицей, которая нуждается в проверке и/или ремонте. В общем случае, это $DATADIR/DBNAME.
Опции программы isamchk :
-# | Вывести в протокол отладочную информацию. В общем виде ‘d:t:o,filename`. Подробности в главе о библиотеке отладки. |
-? | Справка. |
-a | Анализ. Используется для для оптимизации размещения таблиц. |
-d | Информация о таблице. |
-e | Расширенная проверка. При запуске с этой опцией надо остановить демон mysqld. |
-f | Принудительно создать временный файл. Эта опция вызовет , если таблица разрушена. |
-k# | Используемые ключи. |
-i | Дополнительная информация. |
-q | Быстрая проверка. |
-r[o] | Восстановление, Эта опция также уплотнит внутренние индексы B-Tree, используемые MySQL. Используйте эту опцию, чтобы уменьшить место, занимаемое таблицей, за счет удаления неиспользуемых индексов. |
-s | Работать молча. |
-u | Распаковать упакованный файл. |
-v | Подробный вывод. Используется вместе с другими параметрами, чтобы получить большее количество информации. Можно задать большее количество символов v для повышения объема выдаваемой информации (например, vv). |
-w | Ждать, если таблица заблокирована. |
-I | Справка. |
-S[ir]# | Сортировать индекс/записи по ключу #. Эта опция оптимизирует размещение данных в таблице. |
-V | Информация о версии. |
-O var=# | Опция оптимизации var=#[k][m] |
Можно использовать вторую опцию ‘ -q ‘, чтобы использовать старый файл данных. -ro использует старый метод восстановления: медленнее, но надежнее -r . -r может исправить почти все ошибки, кроме уникальных ключей, которые оказались все же не уникальными. УБЕДИТЕСЬ, ЧТО ДЕМОН MYSQLD НЕ ЗАПУЩЕН, ЕСЛИ ИСПОЛЬЗУЕТЕ ЭТУ ОПЦИЮ! Если -f задан при проверке таблицы, то таблицы с ошибками будут автоматически исправлены.
Имеется несколько примеров. См. Подробно о таблицах.
isamchk -r [table_name] | Убрать все дырки, которые сформировались из-за использования BLOBS или VARCHARS. Также установить какие еще есть проблемы. | |||||||||||||||||||||||||||||||||||||||||||||||||
isamchk -ei [table_name] | Проверить таблицу и отобразить статистику. | |||||||||||||||||||||||||||||||||||||||||||||||||
isamchk [table_name] | Найти большинство ошибок. | |||||||||||||||||||||||||||||||||||||||||||||||||
isamchk -rq [table_name] | Обновить только индексный файл. Быстро, но не исправляет ошибки в файле данных. | |||||||||||||||||||||||||||||||||||||||||||||||||
демона mysqld . Файл file_name будет хранить протокол всех изменений для всех таблиц. Программа isamlog может быть использована для получения информации об этом файле и обновить все таблицы и базы данных. Чтобы восстановить базу данных, нужна копия, которая содержит вашу базу данных до того, как mysqld сгенерировал ISAM журнал, или полный набор ISAM журналов с начала работы вашей базы данных.
safe_mysqld [options to mysqld] Этот скрипт обычно выполняется при начальной загрузке, чтобы запустить mysqld. Если Вы не хотите, чтобы ваш DATADIR был помещен в иерархии каталога MySQL, что и mysqld, Вы должны подправить DATADIR в этом скрипте. comp_err [-?] [-I] [-V] fromfile[s] tofile Эта программа используется для компиляции текстовых файлов которые содержат соответствие между кодами ошибок mysql и текстовыми сообщениями об этих ошибках в формат, который понимает mysql. Это нужно для изменения уже существующего файла сообщений или генерации такого файла для другого языка. comp_err share/english/errmsg.txt share/english/errmsg.sys msql2mysql [filename] ОПИСАНИЕ: Скрипт msql2mysql используется как первый шаг при портировании msql скриптов в MySQL. Просто введите: msql2mysql something.c >something.mysql.c’ Вам придется, конечно, многое исправить, но это хорошее начало. Подробнее о портировании mSQL-кода в MySQL рассказано здесь. Программа msql2mysql — фактически довольно простой скрипт, который использует команду replace , которая поставляется с СУБД MySQL, чтобы заменить mSQL обращения к функции на их MySQL эквиваленты. Меняются только имена, дополнительные параметры не добавляются. Пожалуйста используйте этот скрипт при сообщении об ошибках в MySQL. Он генерирует форму для Вас, которую для заполнения помещает в любой текстовый редактор, указанный в переменной $VISUAL (Vi по умолчанию). Форма будет содержать автоматически сгенерированную информацию относительно вашей системы, включая версии OS и MySQL и архитектуру. Когда Вы закончите, форма будет отправлена по почте в список рассылки MySQL. Вы можете факультативно определять альтернативный адрес на который следует послать сообщение об ошибке, определяя [адрес]. Программа perror предоставляет короткие текстовые объяснения числовых кодов ошибок, возвращаемых системой или СУБД MySQL. Программа perror поддерживает опции:
replace [-?svIV] from to from to . — [files] Программа program используется скриптом msql2mysql. Replace может быть использована для замены строки на месте в файле или получать строку через канал (пайп), производить замену и выводить результат в STDOUT. Допустимы следующие опции:
replace Apple Orange somefile Заменит все вхождения Apple на Orange в файле somefile. cat INFILE | replace Apple Orange Blimp Train > OUTFILE Все вхождения Apple в файле INFILE будут заменены на Orange и результат выведен в файл OUTFILE. В то же время, все вхождения Blimp в файле INFILE будут заменены на Train и тоже выведены в файл OUTFILE. Таким образом, можно заменять более чем одно выражение за один проход. Вы можете использовать специальные символы во входных строках:
Replace простая и очень полезная утилита с большими потенциальными возможностями использования в MySQL. Эта команда, вероятно, полезна только на системах, которые не имеют, команды which, встроенной в оболочку, или доступной как команда. Выводит только первую найденную команду. zap [-signal] [-?Ift] pattern По умолчанию zap запросит подтверждение для каждого подходящего процесса. Программа zap поддерживает опции:
В качестве сигнала допускается любой сигнал системы unix. По умолчанию сигнал = 9 (завершить процесс). В заключение хочется попросить Вас, если Вам понравилась эта страничка или пригодилась изложенная здесь информация, послать благодарность автору. Это поможет мне вести статистику того, скольким людям пригодилось хоть что-то из моих трудов. Источник |