*Drive*- Здесь рулят padonki https://www.drivesource.ru/ |
|
работа с mysql https://www.drivesource.ru/viewtopic.php?f=15&t=521 |
Страница 1 из 1 |
Автор: | Padonak [ 30 дек 2007, 00:12 ] |
Заголовок сообщения: | работа с mysql |
Узнать, какие базы существуют в настоящее время на сервере, можно при помощи команды SHOW: Код: mysql> SHOW DATABASES; Eсли база данных test существует, попробуйте обратиться к ней: Код: mysql> USE test; Database changed Создание и выбор базы данных: Код: mysql> CREATE DATABASE menagerie; Создавать базу нужно только однажды, но выбирать ее приходится в каждом сеансе работы с mysql. Делать это можно с помощью команды USE, представленной выше. А можно выбирать базу и из командной строки при запуске mysql. Для этого достаточно лишь ввести ее имя после параметров соединения, которые нужно вводить в любом случае. Например: Код: shell> mysql -h host -u user -p menagerie Enter password: ******* Просмотр таблиц в базе: Код: mysql> SHOW TABLES; как добавить/удалить пользователя в MySQL из консоли? Бывает, что удалённая/виртуальная машина установлена и необходимо создать пользователей/базы данных и раздать им права, а ставить phpmyadmin не хочется. Или просто блеснуть умением работать с пользователя mysql из консоли перед коллегами Для начала необходимо войти под суперпользователем: Код: mysql -u root -p После ввода пароля мы окажемся в консоле mysql. Создадим пользователя padonak с localhost и паролем '123'. Код: create user 'padonak'@'localhost' identified by '123'; Пользователь создан. Для проверки посмотрим список пользователей: Код: select user,host,password from mysql.user; Создадим базу данных drivesource Код: create database drivesource; Дадим пользователю padonak полные права на базу drivesource Код: grant all on dribesource.* to 'padonak'@'localhost'; Удалим пользователя 'padonak'@'localhost' Код: drop user 'padonak'@'localhost' Если вы создали пользователей для разных хостов и хотите всех удалить, то необходимо удалить их по одному через команду 'drop user' с указанием хоста Внимание! Команда 'DROP USER' не закрывает автоматически все сессии открытые удаляемым пользователем. Если пользователь с открытой сессией был удалён, то удаление не будет иметь эффекта до закрытии сессии пользователем. После закрытия сессии следующая попытка входа в систему пользователем которого удалили не удастся. Удаляем базу testdb drop database testdb; ну а полное руководство - там : http://www.php.su/mysql/manual/#Loading_tables |
Автор: | Padonak [ 26 июн 2008, 11:31 ] |
Заголовок сообщения: | MySQL и русская кодировка WINDOWS-1251 |
что нужно написать в конфигурационном файле /etc/my.cnf для того, чтобы настроить mysql стандартной сборки на работу с кодировкой cp1251 по умолчанию без всякой перекомпиляции. Рассмотрим пример конфига на основе MySQL 5.x. В раздел [mysqld] необходимо добавить следующее: default-character-set=cp1251 character-set-server=cp1251 collation-server=cp1251_general_ci init-connect="SET NAMES cp1251" skip-character-set-client-handshake Две последние строки принудительно устанавливают кодировку cp1251 для всех запросов. В раздел [mysqldump] достаточно добавить только default-character-set=cp1251 Этого достаточно, чтобы MySQL работал с windows-1251 кодировкой по умолчанию. Если же при импорте базы данных вместо русских букв выдаются иероглифы или знаки вопроса, это значит, что дамп был сделан в кодировке, отличной от cp1251. Переделайте дамп в cp1251 или перекодируйте его в нужную кодировку с помощью утилит iconv или recode. |
Автор: | Padonak [ 01 ноя 2009, 19:44 ] |
Заголовок сообщения: | смена пароля в mysql |
Забыт пароль root и его надо сменить или убрать вовсе. Гасим MySQL сервер, например так: Код: $ sudo /etc/init.d/mysql stop Запускаем его без учета привелегий: Код: $ sudo mysqld --skip-grant-tables В консоли mysql вносим необходимые изменения в привелегии: Код: $ sudo mysql
mysql> UPDATE mysql.user SET Password='пароль_или_ничего' WHERE User='root'; mysql> FLUSH PRIVILEGES; mysql> quit Перезапускаем сервер. |
Автор: | Padonak [ 14 июл 2010, 16:24 ] |
Заголовок сообщения: | |
mysqldump, Получение дампов данных и структуры таблицы Данная утилита позволяет получить дамп (``моментальный снимок'') содержимого базы данных или совокупности баз для создания резервной копии или пересылки данных на другой SQL-сервер баз данных (не обязательно MySQL-сервер). Дамп будет содержать набор команд SQL для создания и/или заполнения таблиц. Если же резервная копия создается на сервере, то вместо описываемой утилиты следует использовать mysqlhotcopy. См.раздел See section 4.8.6 mysqlhotcopy, Копирование баз данных и таблиц MySQL. shell> mysqldump [OPTIONS] database [tables] или mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] или mysqldump [OPTIONS] --all-databases [OPTIONS] Если не указывать имена таблиц или использовать параметры --databases или --all-databases, то будет получен дамп базы данных в целом (соответственно - всех баз данных). Перечень опций, поддерживаемых вашей конкретной версией утилиты mysqldump, можно получить, выполнив команду mysqldump --help. Следует иметь в виду, что утилита mysqldump, используемая без опций --quick или --opt, перед тем, как сделать дамп результата выборки информации, загрузит весь результат в память. Это может создать проблемы при получении дампа большой базы данных. Учтите, что не следует применять параметры --opt или -e, если вы собираетесь использовать для получения дампа новую копию программы mysqldump, а затем воспроизводить его на очень старом MySQL-сервере. Утилита mysqldump поддерживает следующие опции: --add-locks Добавить команды LOCK TABLES перед выполнением и UNLOCK TABLE после выполнения каждого дампа таблицы (для ускорения доступа к MySQL). --add-drop-table Добавить команду DROP TABLE перед каждой командой CREATE TABLE. -A, --all-databases Произвести дамп всех баз данных. Аналогично опции --databases с указанием всех баз данных. -a, --all Включить все опции создания объектов, специфичные для MySQL. --allow-keywords Разрешить создавать имена столбцов, которые совпадают с ключевыми словами. Отсутствие конфликтов обеспечивается прибавлением имени таблицы в качестве префикса к имени каждого столбца. -c, --complete-insert Использовать полные команды INSERT (с именами столбцов). -C, --compress Использовать сжатие всей информации между клиентом и сервером, если они оба поддерживают сжатие. -B, --databases Выполнить дамп нескольких баз данных. Обратите внимание на разницу в использовании: в этом случае таблицы не указываются. Все имена аргументов рассматриваются как имена баз данных. Оператор USE db_name; включается в вывод перед каждой новой базой данных. --delayed Использовать команду INSERT DELAYED при вставке строк. -e, --extended-insert Использовать команду INSERT с новым многострочным синтаксисом (повышает компактность и быстродействие операторов ввода). -#, --debug[=option_string] Отслеживать прохождение программы (для отладки). --help Вывести справочную информацию и выйти из программы. --fields-terminated-by=... --fields-enclosed-by=... --fields-optionally-enclosed-by=... --fields-escaped-by=... --lines-terminated-by=... Эти опции используются совместно с параметром -T и имеют то же самое значение, что и соответствующие операторы для LOAD DATA INFILE. См. раздел See section 6.4.9 Синтаксис оператора LOAD DATA INFILE. -F, --flush-logs Записать на диск данные системного журнала из буфера MySQL-сервера перед началом выполнения дампа. -f, --force, Продолжать даже при получении ошибки SQL при выполнении дампа таблицы. -h, --host=.. Выполнить дамп данных MySQL сервера на указанном хосте. Значение хоста по умолчанию - localhost. -l, --lock-tables. Заблокировать все таблицы перед началом выполнения дампа. Таблицы блокируются оператором READ LOCAL, чтобы разрешить параллельные записи для MyISAM-таблиц. Следует отметить, что при выполнении дампа совокупности баз данных опция --lock-tables блокирует таблицы каждой базы по отдельности. Таким образом, использование этого параметра не гарантирует, что таблицы будут логически непротиворечивы в пределах этих баз данных. В различных базах данных при выполнении дампа таблицы могут находиться в совершенно разных состояниях. -K, --disable-keys Добавляет выражение /*!40000 ALTER TABLE tb_name DISABLE KEYS */; и /*!40000 ALTER TABLE tb_name ENABLE KEYS */; в выводе результата. Это ускорит загрузку данных на сервер MySQL 4.0, так как индексы создаются после внесения всех данных. -n, --no-create-db В выводе результата выражение CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name; будет отсутствовать. Данная строка будет добавлена в любом случае при использовании опций --databases или --all-databases. -t, --no-create-info Не записывать информацию о создании таблицы (команда CREATE TABLE). -d, --no-data Не записывать информацию из строк таблицы. Это очень полезно для получения дампа структуры таблицы! --opt То же, что и --quick --add-drop-table --add-locks --extended-insert --lock-tables. Должно дать наиболее быстрый дамп для чтения на MySQL-сервере. -pyour_pass, --password[=your_pass] Используемый пароль при подключении к серверу. Если аргумент =your_pass не введен, mysqldump предложит ввести пароль. -P port_num, --port=port_num Номер порта TCP/IP, используемого для подключения к хосту (применяется при подсоединении к хостам, отличным от localhost, для которого используются сокеты Unix ). -q, --quick Выводить дамп непосредственно на стандартный вывод stdout без буферизации запроса. Для этого используется функция mysql_use_result(). -Q, --quote-names Взять в кавычки имена таблиц и столбцов без символов ``'. -r, --result-file=... Прямой вывод указанного файла. Этот опцию следует использовать в MS DOS, так как она предотвращает преобразование символа новой строки '\n' в последовательность '\n\r' (новая строка + возврат каретки). --single-transaction Данная опция выдает SQL-команду BEGIN перед выполнением дампа данных с сервера. Наиболее часто используется с InnoDB-таблицамии и уровнем изоляции транзакций READ_COMMITTED, так как именно в этом режиме можно получить дамп с непротиворечивым состоянием базы данных после выполнения команды BEGIN без блокирования каких-либо приложений. Используя эту опцию, необходимо помнить, что при выполнении дампа только транзакционные таблицы будут находиться в непротиворечивом состоянии, т.е. некоторые MyISAM- или HEAP-таблицы при использовании данной опции могут все же изменить свое состояние. Опция --single-transaction добавлена в версии 4.0.2. Она является взаимоисключающей по отношению к опции --lock-tables, так как команда LOCK TABLES прерывает выполнение предыдущей транзакции. -S /path/to/socket, --socket=/path/to/socket Файл сокета для подсоединения к localhost (значение хоста по умолчанию). --tables Перекрывает параметр --databases (-B). -T, --tab=path-to-some-directory Для каждой заданной таблицы создает файл a `table_name.sql', содержащий SQL CREATE команды для создания таблицы, и файл `table_name.txt' с данными таблицы. Файл `.txt' имеет формат в соответствии с параметрами --fields-xxx и --lines--xxx. Примечание: Этот параметр работает только при условии, что утилита mysqldump запущена на том же компьютере, что и демон mysqld, причем пользователь/группа, запустившие данный поток mysqld (обычно это пользователь mysql и группа mysql), должны иметь право создавать/записывать файл по указанному адресу. -u user_name, --user=user_name Имя пользователя MySQL-сервера, используемое при подключении к серверу. Значением по умолчанию является имя пользователя Unix. -O var=option, --set-variable var=option Установить значения переменных. Доступные для использования переменные перечислены ниже. -v, --verbose Расширенный режим вывода. Вывод более детальной информации о работе программы. -V, --version Вывести информацию о версии и выйти из программы. -w, --where='where-condition' Выполнить дамп только выбранных записей. Обратите внимание, что кавычки обязательны. "--where=user='jimf'" "-wuserid>1" "-wuserid<1" -X, --xml Представляет дамп базы данных в виде XML. -x, --first-slave Блокирует все таблицы во всех базах данных. -O net_buffer_length=#, where # < 16M При создании многострочных операторов ввода (как и в случаях применения параметров --extended-insert или --opt) утилита mysqldump будет создавать строки длиной вплоть до указанной в net_buffer_length. При увеличении значения этой переменной необходимо также убедиться в том, что в MySQL-сервере для переменной max_allowed_packet указано значение больше, чем величина net_buffer_length. Чаще всего утилита mysqldump используется для получения резервной копии всех баз данных. See section 4.4.1 Резервное копирование баз данных. mysqldump --opt database > backup-file.sql Можно, наоборот, прочитать этот файл на MySQL-сервере посредством команды: mysql database < backup-file.sql или mysql -e "source /patch-to-backup/backup-file.sql" database Данная утилита достаточно часто используется и для переноса информации из базы данных на другой MySQL-сервер: mysqldump --opt database | mysql --host=remote-host -C database Вполне возможно получить дамп нескольких баз данных с помощью одной команды: mysqldump --databases database1 [database2 ...] > my_databases.sql Если необходим дамп всех баз данных, можно использовать: mysqldump --all-databases > all_databases.sql |
Автор: | Padonak [ 13 апр 2017, 22:34 ] |
Заголовок сообщения: | Fatal error: mysql.user table is damaged |
Fatal error: mysql.user table is damaged. Please run mysql_upgrade Поле обновления дистрибутива - не стартанул мускул . В логах ошибка ну и типа: Код: Fatal error: mysql.user table is damaged. Please run mysql_upgrade ток он не стартует и доступа нет. Выход из этой ситуации таков: - пробуем запустить MySQL в режиме --skip-grant-tables Для запуска сервера в режиме skip-grant-tables проще всего временно добавить строчку skip-grant-tables в my.cnf в секции Код: [mysqld] [mysqld] skip-grant-tables другие параметры далее уже когда он стартанёт пробуем обновить базы: Код: mysql_upgrade -u root -p
|
Автор: | Padonak [ 03 авг 2017, 22:18 ] |
Заголовок сообщения: | mysql_upgrade: [ERROR] 1370: alter routine command denied to |
Debian has a MySQL account debian-sys-maint used for switching on/off and checking status. The password for that user should be the same as stored in /etc/mysql/debian.cnf. The file looks like this: # Automatically generated for Debian scripts. DO NOT TOUCH! Код: [client] host = localhost user = debian-sys-maint password = <password> socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = <password> socket = /var/run/mysqld/mysqld.sock basedir = /usr If the password doesn't match (for example because you changed it manually) the init script won't work anymore. You should set the password according to the file. So: Код: mysql -u root -p # Then type MySQL root password Код: GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '<password>';
|
Автор: | Padonak [ 31 дек 2018, 15:38 ] |
Заголовок сообщения: | Исправление ошибок в базе MySQL |
Использование утилиты mysqlcheck Код: # mysqlcheck -u root -p --optimize --auto-repair --all-databases Назначение параметров: --optimize – Оптимизируем все базы. --auto-repair – Ремонтируем все базы. --all-databases – Проверяем ошибки у всех баз. Если база данных больших размеров, а вам нужно срочно поправить определенную таблицу, то вы можете запустить проверку определенной таблицы в базе данных. Проверка отдельной таблицы в базе данных: Код: # mysqlcheck -r имя_базы имя_таблицы_в_базе -u root -p
|
Автор: | Padonak [ 04 апр 2020, 00:15 ] |
Заголовок сообщения: | Re: работа с mysql |
Проблемы с debian-sys-maint в MySQL Ясно дело, что проблема с паролем этого юзера в БД mysql, но из-за чего случилась эта проблема — это неизвестная переменная, которая нам ничего не говорит о том, зачем вообще нужен этот юзер. Ладно, как сменить пароль на его «собственный»? Узнать такой пароль не проблема, он лежит в /etc/mysql/debian.cnf, а в нем строчка с паролем. Копируем пароль (или задаем новый), заходим под root’ом в mysql и далее: Код: mysql> use mysql; mysql> GRANT RELOAD, SHUTDOWN, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'тут тот самый пароль'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'оп/ть тот самый пароль' WITH GRANT OPTION; Код: # /etc/init.d/mysql restart [FIX] phpmyadmin дополнительные функции https://forum.vestacp.com/viewtopic.php?f=32&t=10306 |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |