Мой сайт
Главная | Каталог статей | Регистрация | Вход
Пятница
26.04.2024
19:46
Приветствую Вас Гость | RSS
Главная » Статьи » Linux и Unix

Mysql - базовое описание часть 3
Создание пользователей и назначение им прав


GRANT - Создание пользователей и назначение прав
синтаксис:
GRANT (ALL PRIVILEGES | (SELECT, INSERT, UPDATE, DELETE,
 REFERENCES (column list), USAGE))
 ON table TO user,... [WITH GRANT OPTION]
[IDENTIFIED BY [PASSWORD] 'password']] WITH w_options

GRANT OPTION =
 | MAX_QUERIES_PER_HOUR count
 | MAX_UPDATES_PER_HOUR count
 | MAX_CONNECTIONS_PER_HOUR count
 | MAX_USER_CONNECTIONS count
table = *.*
       db_name.tbl_name
user = 'name'@'hostname'
w_options
 | MAX_QUERIES_PER_HOUR count
 | MAX_UPDATES_PER_HOUR count
 | MAX_CONNECTIONS_PER_HOUR count
 | MAX_USER_CONNECTIONS count
пример: (создать пользователя web(подкл. только с localhost), назначить пароль webpass, 
назначить доп опции на максимально возможное кол-во запросов, соединений...)
GRANT USAGE ON *.* TO 'web'@'localhost' IDENTIFIED BY 'webpass' 
WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;

пример: (дать все права на бд web_base, пользователю web. База должна существовать.)
GRANT ALL PRIVILEGES ON `web_base`.* TO 'web'@'localhost' WITH GRANT OPTION;

SET PASSWORD - Установка пароля
синтаксис:
SET PASSWORD FOR 'user'@'hostname' = password('newpass');

аналог
GRANT USAGE ON *.* TO user@host IDENTIFIED BY 'password';

DROP USER - Удаление пользователя 
синтаксис:
DROP USER user [, user] ...

SHOW GRANTS - Показать права
SHOW GRANTS FOR 'root'@'localhost';

RENAME USER - Переименовать пользователя
синтаксис:
RENAME USER old_user TO new_user;

Функции


Несколько примеров по работе с функциями:
AVG() - возвращает среднее значение
SELECT AVG(id) FROM people;

COUNT() - считает что прикажешь
SELECT COUNT(column_name) FROM table_name;
SELECT COUNT(*) FROM table_name;

MAX() - возвращает максимальное значение
пример:
SELECT MAX(column_name) FROM table_name;

MIN() - возвращает минимальное значение
пример: 
SELECT MIN(column_name) FROM table_name;

SUM() - функция суммирования
пример: 
SELECT SUM(column_name) FROM table_name;

UCASE() - ковертирует символы в верхний регистр
пример: 
SELECT UCASE(column_name) FROM table_name;

LCASE() - конвертирует символы в нижний регистр
пример:
SELECT LCASE(column_name) FROM table_name;


Типы данных которые используються в таблицах(data_type)


Целые числа
Тип
Описание
TINYINTМожет хранить числа от -128 до 127
SMALLINTДиапазон от -32768 до 32767
MEDIUMINTДиапазон от -8388608 до 8388607
INTДиапазон от -2147483648 до 2147483647
BIGINTДиапазон от -9223372036854775808 до 9223372036854775807

Дробные числа
Тип
Описание
FLOATЧисло с плавающей точкой небольшой точности
DOUBLEЧисло с плавающей точкой двойной точности
REALСиноним для DOUBLE
DECIMALДробное число хранящееся в виде строки
NUMERICСиноним для DECIMAL

Строки (символьные данные)
Тип
Описание
VARCHARМожет хранить не более 255 символов
TINYTEXTМожет хранить не более 255 символов
TEXTМожет хранить не более 65 535 символов
MEDIUMTEXTМожет хранить не более 16 777 215 символов
LONGTEXTМожет хранить не более 4 294 967 295 символов

Бинарные данные(учитываеться регистр символов)
Тип
Описание
TINYBLOBМожет хранить не более 255 символов
BLOBМожет хранить не более 65 535 символов
MEDIUMBLOBМожет хранить не более 16 777 215 символов
LONGBLOBМожет хранить не более 4 294 967 295 символов

Дата и время
Тип
Описание
DATEДата в формате ГГГГ-ММ-ДД
TIMEВремя в формате ЧЧ:ММ:СС
DATETIMEДата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС
TIMESTAMPДата и время в формате ГГГГММДДЧЧММСС

Дополнительные инструменты и возможности сервера MySQL


mysql - SQL шелл.Может работать как в интерактивном режиме, т.е.
дает возможность подключиться  к базе и посредством SQL команд и запросов
производить какие-либо действия с БД, так и не интерактивном тоесть вызвано исполнение кода из шелл-скрипта например.
пример: 
mysql --user=user_name --password=your_password db_name

подключиться к указанной бд определеннім пользвоателем.
mysql --user=user_name --password=your_password db_name < db_structure.sql

таким образом можно восстанавливать БД по имеющемуся дампу БД.
mysql --user=user_name --password=your_password \
db_name--execute="sql commands"

может быть использвана в шелл-скриптах если необходимо производить какие-то запросы из скрипта.
myisamchk - тулза для работы с MyISAM таблицами. Может чекать, восстанавливать и оптимизировать таблицы.(Работает с файлами  .MYD и .MYI)
Перед использование желательно делать бэкапы.
пример:
myisamchk *.MYI

mysql_config - показывает опции с которыми был скомпилирован Mysql.
mysql_fix_privilege_tables - скрипт, который обновляет все таблицы с привилегиями.
mysql_install_db - скрипт который инсталит базы,таблицы которые нужны для работы MYSQL.
mysql_tzinfo_to_sql - загружает таблицы временных зон (time zones).
mysql_upgrade - запускаеться каждый раз при обновелнии сервера MySQL. Проверяет все таблицы во всех базах на совместимость с текущей версией.
Чтобы проверить и восстановить таблицы, и апгрейднуть системные таблицы mysql_upgrade
выполняет следующую команду:
mysqlcheck --check-upgrade --all-databases --auto-repair
mysql_fix_privilege_tables

mysql_waitpid - запуск с ожиданим программы чей pid и время её ожидания можно утсановить 
mysql_waitpid [options] #pid #time

mysqladmin - тулза для администрирования MySQL сервера.
mysqladmin create db_name - создать новую БД с именем db_name
drop db_name - удалить базу
extended-status - расширенная информация о состоянии сервера
flush-hosts - очистить всю информацию о хостах в кэше
flush-logs - очистить все логи
flush-privileges - перезагрузить таблицы с привилегиями (тоже что и reload)
flush-status - очистить статус переменных
flush-tables - очистить все таблицы
password - устанавливает пароль для БД
shutdown - остановить сервер
Для случая когда сервер настроен с подчиненными серверами (репликация)
startslave - запустить репликацию на подчиненном сервере (slave)
stop-slave - остановить репликацию на подчиненом сервере (slave)
status - отображает краткую информацию о статусе сервера
variables - отобразить переменные сервера и их значения
threads - покажет кол-во активных клиентских трэдов (threads)
--host=host_name - (-h hostname )подключиться к MySQL на укзанный хост
--password=password (-p[password]) - указать пароль на подключение
--port=port_num (-P port_num) - указать порт подключения
--protocol={TCP|SOCKET|PIPE|MEMORY} - указывает протокол/метод с 
помощью которого происходит подключение      
--socket=path (-S path) - подключение на файл-сокет
--ssl* - защищенное подключение, через ssl
--user=user_name, -u user_name - подключающейся пользователь 
mysqlbinlog - инструмент для обработки бинарных логов MySQL'я
Сохранить все логи в файл
mysqlbinlog binlog.000001 > /tmp/statements.sql

mysqlbug   - скрипт, баг-репортер
mysqlcheck - тулза "чекер" и восстановитель таблиц
--all-databases (-A) прочекать все таблицы во всех базах
--auto-repair - автоматически восттанавливать(чинить) таблицы
--optimize -o - оптимизировать таблицы
--repair (-r) - починить таблицы
mysqld_safe - скрипт запуска сервера(рекомендуемый)
mysqldump - инструмент для бэкапирования баз
mysqldump -u[username] -p[password] -h[host] db_name [tables] > backup.sql

--ignore-table=db_name.tbl_name - игнорить определенную таблицу при бэкапе.
--lock_tables (-l) лочить таблицы перед бєкапированием.
--xml, (-X) сохранить бэкап в формате xml
mysqlimport - прога для импорта данных, в различных форматах
mysqlshow - тулза для быстрого просмотра баз, таблиц, полей.

Выполнение SQL запросов из шелла и php


Парочка простых примеров:
Выполнение запросов из шела:
#!/bin/sh
/usr/local/bin/mysql --host=localhost --user=exim --password=exim \
 --database=exim --execute="DELETE FROM \
 \`sended_list\` WHERE \`last_mail_timestamp\` \
 < (UNIX_TIMESTAMP() - 60*24*3600)"

#!/bin/sh
user="dbuser"
pass="dbpassword"
db="dbnme"
host="localhost"
mysql --host="$host" -u "$user" -p"$pass" "$db" <<EOF
 sql-statement-1;
 sql-statement-2;
EOF

#!/bin/sh
user="dbuser"
pass="dbpassword"
db="dbnme"
host="localhost"
sql="select * from tal_name"
mysql --host="$host" -u "$user" -p"$pass" <<EOF
 use $db;
 $sql;
EOF

пример для PHP (создание БД):
<?php
$sql="CREATE DATABASE db_name";
mysql_query($sql);
?>




Источник: http://www.lissyara.su/articles/freebsd/programms/mysql_-_base_descriptions/
Категория: Linux и Unix | Добавил: SAM (24.09.2010)
Просмотров: 2220 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа
Категории раздела
Мои статьи [0]
Linux и Unix [47]
Все про Linux и Unix
Windows [2]
Все про Windows
Администрирование [5]
Все для Системного администратора
Cisco [2]
Мой опыт работы с кисками
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Copyright MyCorp © 2024
    Бесплатный конструктор сайтов - uCoz