*Drive*- Здесь рулят padonki

*Drive* - Counter Strike Source
It is currently 19 Jul 2018, 11:59

All times are UTC + 3 hours [ DST ]




Post new topic Reply to topic  [ 6 posts ] 
Author Message
 Post subject: работа с mysql
PostPosted: 30 Dec 2007, 00:12 
Offline
padonki
User avatar

Joined: 14 Aug 2006, 20:43
Posts: 3647
Location: Солнцево
Has thanked: 9 times
Have thanks: 41 times
Узнать, какие базы существуют в настоящее время на сервере, можно при помощи команды SHOW:

Code:
mysql> SHOW DATABASES;


Eсли база данных test существует, попробуйте обратиться к ней:

Code:
mysql> USE test;
Database changed

Создание и выбор базы данных:

Code:
mysql> CREATE DATABASE menagerie;



Создавать базу нужно только однажды, но выбирать ее приходится в каждом сеансе работы с mysql. Делать это можно с помощью команды USE, представленной выше. А можно выбирать базу и из командной строки при запуске mysql. Для этого достаточно лишь ввести ее имя после параметров соединения, которые нужно вводить в любом случае. Например:

Code:
shell> mysql -h host -u user -p menagerie
Enter password: *******



Просмотр таблиц в базе:

Code:
mysql> SHOW TABLES;


как добавить/удалить пользователя в MySQL из консоли?

Бывает, что удалённая/виртуальная машина установлена и необходимо создать пользователей/базы данных и раздать им права, а ставить phpmyadmin не хочется. Или просто блеснуть умением работать с пользователя mysql из консоли перед коллегами ;)

Для начала необходимо войти под суперпользователем:

Code:
mysql -u root -p


После ввода пароля мы окажемся в консоле mysql.

Создадим пользователя padonak с localhost и паролем '123'.

Code:
create user 'padonak'@'localhost' identified by '123';


Пользователь создан. Для проверки посмотрим список пользователей:

Code:
select user,host,password from mysql.user;


Создадим базу данных drivesource

Code:
create database drivesource;


Дадим пользователю padonak полные права на базу drivesource

Code:
grant all on dribesource.* to 'padonak'@'localhost';




Удалим пользователя 'padonak'@'localhost'

Code:
drop user 'padonak'@'localhost'


Если вы создали пользователей для разных хостов и хотите всех удалить, то необходимо удалить их по одному через команду 'drop user' с указанием хоста

Внимание! Команда 'DROP USER' не закрывает автоматически все сессии открытые удаляемым пользователем. Если пользователь с открытой сессией был удалён, то удаление не будет иметь эффекта до закрытии сессии пользователем. После закрытия сессии следующая попытка входа в систему пользователем которого удалили не удастся.

Удаляем базу testdb

drop database testdb;




ну а полное руководство - там : http://www.php.su/mysql/manual/#Loading_tables

_________________
Моя характеристика с детского сада: Хорошо кушает, спит, гуляет! Прошло много лет, ничего не изменилось.
Image


Last edited by Padonak on 14 Jul 2010, 16:24, edited 1 time in total.

Top
 Profile  
 
PostPosted: 26 Jun 2008, 11:31 
Offline
padonki
User avatar

Joined: 14 Aug 2006, 20:43
Posts: 3647
Location: Солнцево
Has thanked: 9 times
Have thanks: 41 times
что нужно написать в конфигурационном файле /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.

_________________
Моя характеристика с детского сада: Хорошо кушает, спит, гуляет! Прошло много лет, ничего не изменилось.
Image


Top
 Profile  
 
PostPosted: 01 Nov 2009, 19:44 
Offline
padonki
User avatar

Joined: 14 Aug 2006, 20:43
Posts: 3647
Location: Солнцево
Has thanked: 9 times
Have thanks: 41 times
Забыт пароль root и его надо сменить или убрать вовсе.

Гасим MySQL сервер, например так:
Code:
$ sudo /etc/init.d/mysql stop

Запускаем его без учета привелегий:
Code:
$ sudo mysqld --skip-grant-tables

В консоли mysql вносим необходимые изменения в привелегии:
Code:
$ sudo mysql

mysql> UPDATE mysql.user SET Password='пароль_или_ничего' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

Перезапускаем сервер.

_________________
Моя характеристика с детского сада: Хорошо кушает, спит, гуляет! Прошло много лет, ничего не изменилось.
Image


Top
 Profile  
 
 Post subject:
PostPosted: 14 Jul 2010, 16:24 
Offline
padonki
User avatar

Joined: 14 Aug 2006, 20:43
Posts: 3647
Location: Солнцево
Has thanked: 9 times
Have thanks: 41 times
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

_________________
Моя характеристика с детского сада: Хорошо кушает, спит, гуляет! Прошло много лет, ничего не изменилось.
Image


Top
 Profile  
 
PostPosted: 13 Apr 2017, 22:34 
Offline
padonki
User avatar

Joined: 14 Aug 2006, 20:43
Posts: 3647
Location: Солнцево
Has thanked: 9 times
Have thanks: 41 times
Fatal error: mysql.user table is damaged. Please run mysql_upgrade

Поле обновления дистрибутива - не стартанул мускул . В логах ошибка ну и типа:
Code:
Fatal error: mysql.user table is damaged. Please run mysql_upgrade


ток он не стартует и доступа нет. Выход из этой ситуации таков:
- пробуем запустить MySQL в режиме --skip-grant-tables

Для запуска сервера в режиме skip-grant-tables проще всего временно добавить строчку skip-grant-tables в my.cnf в секции
Code:
[mysqld]
[mysqld]
skip-grant-tables
другие параметры


далее уже когда он стартанёт пробуем обновить базы:
Code:
mysql_upgrade -u root -p

_________________
Моя характеристика с детского сада: Хорошо кушает, спит, гуляет! Прошло много лет, ничего не изменилось.
Image


Top
 Profile  
 
PostPosted: 03 Aug 2017, 22:18 
Offline
padonki
User avatar

Joined: 14 Aug 2006, 20:43
Posts: 3647
Location: Солнцево
Has thanked: 9 times
Have thanks: 41 times
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!
Code:
[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:

Code:
mysql -u root -p

# Then type MySQL root password
Code:
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '<password>';

_________________
Моя характеристика с детского сада: Хорошо кушает, спит, гуляет! Прошло много лет, ничего не изменилось.
Image


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC + 3 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  


Powered by -=PadonaK=- ®, Forum Drivesource.ru, Статситика игрового ресурса *Drive* HLstatsX, Система забаненых игроков Sourcebans

drivesource.ru ® 2006-2018