Creating a new database using mysql program
To create a new database via the program, you use the following steps:
First, log in to the MySQL Server using the user
Type the password for the user and press .
Next, to display the existing database in the server to make sure that you are not creating a new database that already exists, you use the command as follows:
MySQL returns five existing databases in the current server.
Then, issue the command with the database e.g., and press Enter:
After that, if you want to review the created database, you can use the command:
MySQL returns the database name and the character set and collation of the database.
Finally, to access the newly created database, you use the command as follows:
Now, you can start creating tables and other databases objects within the database.
To quit the mysql program, type command:
How to create a MySQL user with NTC Hosting’s Control Panel
Creating users in MySQL on the NTC Hosting servers has been facilitated to the maximum. Now you can create users with the very set-up of MySQL databases directly from your web hosting Control Panel. Simply go to the MySQL Databases section, where you should specify the new database details — database name and database password in the corresponding fields. Then simply hit the ‘Create SQL Database’ button and your new database/username is ready. Note that on our hosting platform your database name matches your database username. Easy, isn’t it! For your convenience and for more detailed examples (tutorial videos and screenshots) about how to create a MySQL user and database with NTC Hosting’s Control Panel, please visit the ‘MySQL create table’ article.
Resources:
MySQL create user
Шаг 2. Настройка кластера MariaDB в режиме Master — Master
Если одностороннего режима копирования данных нам недостаточно, продолжаем настройку.
Настройка на сервере Slave
На втором сервере откроем конфигурационный файл MariaDB:
# vi /etc/my.cnf.d/server.cnf
и допишем в него следующее:
log_bin=mysql-bin
log_error=mysql-bin.err
binlog-ignore-db=information_schema,mysql,test
Перезагрузим демон для применения настроек:
# systemctl restart mariadb
Теперь подключимся к MariaDB:
# mysql -uroot -p
и создадим учетную запись для репликации с первого сервера:
MariaDB > GRANT replication slave ON *.* TO «replmy»@»192.168.166.155» IDENTIFIED BY «password»;
* replmy: имя учетной записи (можно использовать любое). 192.168.166.155: IP-адрес первого сервера, с которым будем реплицировать данные. password: пароль для учетной записи (желательно, сложный).
Выведем состояние работы мастера:
MariaDB > show master status\G
Как и при настройке первого сервера, запомните или запишите значения для File и Position.
Настройка на сервере Master
Теперь подключитесь к первому серверу.
И зайдем в командную оболочку MariaDB:
# mysql -uroot -p
введем такую команду:
MariaDB > change master to master_host = «192.168.166.156», master_user = «replmy», master_password = «password», master_log_file = «mysql-bin.000003», master_log_pos = 245;
* 192.168.166.156: IP-адрес моего второго сервера. replmy: учетная запись для репликации, которая была создана на втором сервере. password: пароль для учетной записи, также был сделан на втором сервере. mysql-bin.000003: имя файла, которое мы должны были записать или запомнить (у вас может быть другим). 245: номер позиции, с которой необходимо начать репликацию (также должны были записать или запомнить ранее).
Теперь запустим вторичный сервер для репликации:
MariaDB > start slave;
И проверим состояние репликации:
MariaDB > SHOW SLAVE STATUS\G
Отключитесь от СУРБД:
MariaDB > \q
Настройка кластера в режиме Master — Master закончена.
Теперь остается окончательно убедиться, что репликация работает. Внесите изменения на первом сервере — они должны попасть на второй. И наоборот, при внесении изменений на втором сервере, они должны попадать на первый.
3: Изменение root-пароля
Сервер базы данных работает в ограниченном режиме – без таблиц привилегий и без поддержки доступа по сети. Это позволяет вам войти на сервер без ввода пароля, но не дает выполнять команды, изменяющие данные. Чтобы сбросить root-пароль, вы должны загрузить таблицы привилегий сразу после того, как получили доступ к серверу.
Перезагрузить эти таблицы можно с помощью команды FLUSH PRIVILEGES:
Теперь вы можете изменить свой пароль root. Процедура изменения пароля также зависит от вашей СУБД.
Изменение пароля MariaDB
Если вы используете MariaDB, выполните следующую команду, чтобы установить пароль для учетной записи root.
Вместо new_password нужно указать ваш новый сложный пароль:
Вы увидите следующий вывод, который сообщит об изменении пароля:
MariaDB поддерживает пользовательские механизмы аутентификации. Выполните следующие два оператора, чтобы MariaDB могла использовать свой стандартный механизм аутентификации для нового пароля root:
Для каждого оператора вы получите следующий результат:
Ваш root-пароль MariaDB изменен. Введите exit, чтобы выйти из консоли БД, и перейдите к разделу 4, чтобы перезапустить сервер БД в обычном режиме.
Изменение пароля MySQL
Выполните следующий оператор, чтобы изменить пароль root пользователя MySQL. Замените new_password надежным паролем, который вы запомните.
MySQL поддерживает пользовательские механизмы аутентификации, поэтому данный оператор также гарантирует, что MySQL будет использовать свой стандартный механизм для root пользователя с новым паролем.
Вы увидите такой вывод, что значит, что пароль был успешно изменен:
Теперь ваш пароль изменен. Выйдите из консоли MySQL, введя exit.
Давайте перезапустим БД в нормальном рабочем режиме.
Related
-
Tutorial
Автор выбрал Computer History Museum для получения пожертвования в рамках программы Write for DOnations. Zabbix — это программное обеспечение с открытым исходным кодом для мониторинга сетей и…
-
Tutorial
MariaDB — это система управления реляционными базами данных с открытым исходным кодом, которая часто используется в качестве альтернативы MySQL в составе популярного набора…
-
Tutorial
Автор выбрал Girls Who Code для получения пожертвования в рамках программы Write for DOnations. Большие двоичные объекты (BLOB) — это…
-
Tutorial
Установка Drupal с помощью Docker Compose
Автор выбрал фонд Организации Объединенных Наций для получения пожертвования в рамках программы Write for DOnations. *Оригинальная [версия…
Просмотр из консоли баз MariaDB
Подключение к серверу баз
mysql -u root -p = вывод команды = Enter password: указываем пароль root Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 100985 Server version: 5.5.50-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB >
Вывод списка имеющихся баз
MariaDB > SHOW DATABASES; = вывод команды = +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | wiki_sevo44 | +--------------------+ 4 rows in set (0.01 sec)
Просмотр базы с выводом параметров
MariaDB > SHOW CREATE DATABASE `wiki_sevo44`; = вывод команды = +-----------+--------------------------------------------------------------------+ | Database | Create Database | +-----------+--------------------------------------------------------------------+ | wiki_sevo44 | CREATE DATABASE `wiki_sevo44` /*!40100 DEFAULT CHARACTER SET utf8 */ | +-----------+--------------------------------------------------------------------+ 1 row in set (0.00 sec)
Подключение к необходимой базе
MariаDB > USE wiki_sevo44; = вывод команды = Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariаDB >
Просмотр всех таблиц из базы
MariаDB > SHOW tables; = вывод команды = +-----------------------+ | Tables_in_wiki_sevo44 | +-----------------------+ | l10n_cache | | langlinks | | log_search | | logging | | module_deps | | objectcache | | user_former_groups | | user_groups | | user_newtalk | | user_properties | | valid_tag | | watchlist | +-----------------------+ 12 rows in set (0.00 sec)
Просмотр содержания нужной таблицы
MariаDB > SELECT * FROM page; = вывод команды = +---------+----------------+-------------------------------------+-------------------+------------------+-------------+----------------+----------------+--------------------+-------------+----------+--------------------+-----------+ | page_id | page_namespace | page_title | page_restrictions | page_is_redirect | page_is_new | page_random | page_touched | page_links_updated | page_latest | page_len | page_content_model | page_lang | +---------+----------------+-------------------------------------+-------------------+------------------+-------------+----------------+----------------+--------------------+-------------+----------+--------------------+-----------+ | 1 | 0 | Заглавная_страница | | 0 | 1 | 0.6843282599 | 20170826182609 | NULL | 1 | 1035 | wikitext | NULL | | 2 | 0 | Тестовая 3 | | 0 | 1 | 0.485584249082 | 20170830191050 | 20170830191052 | 2 | 20 | wikitext | NULL | | 3 | 0 | Тестовая | | 0 | 1 | 0.027751067675 | 20170831130200 | 20170831130201 | 3 | 19 | wikitext | NULL | | 4 | 0 | Тестовая 2 | | 0 | 0 | 0.213026978763 | 20170831131024 | 20170831131025 | 6 | 1120 | wikitext | NULL | +---------+----------------+-------------------------------------+-------------------+------------------+-------------+----------------+----------------+--------------------+-------------+----------+--------------------+-----------+ 4 rows in set (0.00 sec)
Как изменить (сбросить) root пароль в MySQL
Довольно часто происходит такая ситуация, что пароль для учетной записи root в MySQL необходимо восстановить, поменять или сбросить. Хорошо, если он известен, но бывают случаи, когда пароль был утерян или неизвестен с самого начала. В данной статье пойдет речь о том, как этот пароль восстановить, имея доступ к серверу, на котором запущен mysql-server для обоих случаев, когда пароль о учетной записи root ИЗВЕСТЕН и НЕ ИЗВЕСТЕН.
Если пароль root ИЗВЕСТЕН
Возьмем самую простую ситуацию, когда пароль от учетной записи root вам известен и все что нужно сделать, это просто его поменять. Чтобы задать новый пароль для учетной записи root, необходимо проделать следующие действия:
В том случае, если вы пользуетесь каким-либо веб-интерфейсом, например, phpMyAdmin
, то тогда вы можете пропустить пункт 1 и сразу же выполнить запрос для нужной версии MySQL (пункт 2) прямо из интерфейса phpMyAdmin (вкладка SQL).
1) Подключаемся в консоль MySQL сервера с правами root (не забываем ввести пароль, после появления соответствующего запроса):
2) Меняем пароль для пользователя root:
Для MySQL версий 5.7.6
и новее (5.7.7, 5.7.8…)
Для MySQL версий 5.7.5
и старее (5.7.4, 5.7.3…)
— это пароль, который вам необходимо поменять на свой собственный. В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:
В том случае, если указанные выше команды по какой то причине не сработали, вы можете воспользоваться следующим запросом:
В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:
3) Перезагружаем привилегии, чтобы изменения вступили в силу:
4) Для выхода из консоли MySQL сервера выполняем команду выхода:
После этого, пароль должен поменяться.
Если пароль root НЕ ИЗВЕСТЕН
Если вы не знаете текущий пароль root (потеряли, забыли) в MySQL, то придется пойти чуть более сложным путем, чем описанные действия выше:
1) Останавливаем mysqld:
2) Проверяем, что нет запущенных процессов mysqld:
Если все нормально, то вывод команды должен состоять лишь из одной строки, примерно такого содержания:
3) Создаем каталог
для запуска mysqld в safe режиме из консоли
4) Делаем владельцем данного каталога пользователя mysql (чтобы не было проблем с правами)
5) Запускаем MySQL в ручном режиме из консоли, пропуская проверку прав (опция —skip-grant-tables). А также отключаем доступ к серверу через и —skip-networking), чтобы злоумышленник не мог воспользоваться тем, что мы отключили проверку прав пользователей. При использовании данной опции, доступ к серверу становится возможным только через localhost.
В случае успешного запуска, вывод в консоли должен быть примерно таким:
6) Подключаемся из консоли к серверу mysqld и выбираем базу данных mysql:
7) Используем плагин mysql_native_password, иначе в некоторых случаях будем получать ошибку «ERROR 1524 (HY000): Plugin ‘auth_socket’ is not loaded
«, а нам это не нужно:
Вывод в результате выполнения данной команды должен быть примерно таким:
Перезагружаем привилегии:
9) Меняем пароль для нужного пользователя, в нашем случае это root:
Для MySQL версий 5.7.6
и новее (5.7.7, 5.7.8…)
Для MySQL версий 5.7.5
и старее (5.7.4, 5.7.3…)
— это пароль, который вам необходимо поменять на свой собственный. В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:
В том случае, если указанные выше команды по какой то причине не сработали, вы можете воспользоваться следующим запросом:
В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:
9) После чего, вводим команду exit для отключения:
10) Выключаем запущенный в ручном режиме Mysqld сервер:
Если все пройдет успешно, то вывод должен быть примерно таким:
Если же команда не сработала и вы получаете вот такую (или любую другую) ошибку:
То можно принудительно завершить процесс с помощью следующей команды:
11) Проверяем, что нет запущенных процессов mysqld:
12) Запускаем Mysql-server в нормальном режиме:
И пытаемся подключиться к нашему серверу с новым паролем, который мы установили.
Оценить статью
MySQL InnoDB, MyISAM etc.
Краткое описание современных движков хранения данных в MySQL- совместимых СУБД система управления базами данных.
InnoDB — основной движок для MySQL, который с версии 5.5 стал дефолтным. Поддерживает транзакции, репликацию, построчную блокировку. В отличие от таблиц MyISAM, где для каждой таблицы создается один файл данных, данные InnoDB в настройках по умолчанию хранятся в больших совместно используемых файлах. То есть данные для всех таблиц и всех баз данных хранятся в одном файле, изменить это можно с помощью настроек опции innodb_file_per_table (Как включить MySQL innodb_file_per_table?).
Чтобы уменьшить размер своей базы данных с движком InnoDB, необходимо воспользоваться mysqldump, чтобы сделать дамп всех своих таблиц, создать новую базу данных и импортировать таблицы в новую базу данных. Уменьшение таблицы Innodb
- MyISAM — не поддерживает транзакции и внешние связи (foreign key), но зато может похвастаться полнотекстовыми индексами и быстротой вставки данных. На Select запросах MyISAM медленнее, чем InnoDB. Долгое время был стандартным для всех версий MySQL, а потому до сих пор является самым популярным.
- MERGE — MyISAM движок для разнесения данных в одной таблице на несколько разных.
- CVS — специализированный движок на случай, когда требуется хранить и обрабатывать большие массивы строковых данных, разделяемых запятой. Данные можно править обычным текстовым редактором.
- MEMORY — движок, использующийся для хранения данных не на диске, а в памяти. Информация из базы доступна только во время работы сервера, но это дает колоссальный прирост в производительности.
- Federated/FederatedX — этот движок специализируется на прозрачном разнесении данных по нескольким серверам (физическим) на уровне таблицы.
- PBXT — призванный заменить InnoDB новый движок, в котором реализованы полная поддержка транзакций, многоверсионность, автоматическая обработка дедлоков. Движок оптимизирован для большого количества одновременных транзакций.
- Blackhole — служебный движок, представляющий собой, по сути, /dev/null для СУБД и фактически не производящий никаких записей на диск. Используется для репликации.
- Archive — используется в тех случаях, когда необходимо хранить большие массивы данных без изменений. Для эффективности хранения используется сжатие, что приводит к медлительности во время выборок. Движок хорошо подходит для долговременного хранения логов и другой служебной информации.
- XtraDB — расширенная и исправленная в некоторых проблемных местах InnoDB от компании Percona.
- BlitzDB — еще одна замена для MyISAM с хорошей производительностью за счет встроенного построчного кэширования и автоматического восстановления после сбоев. Движок не поддерживает транзакции.
- NDB — движок для кластера, обладающий, впрочем, кучей проблем и удручающе плохой производительностью.
- Falcon — легендарный движок от компании MySQL AB, разрабатываемый еще со времен Sun, когда было принято решение заменить оракловский InnoDB.
- SphinxSE — полнотекстовый движок от создателя поискового сервера Sphinx. Лучший вариант для полнотекстового поиска и индексации по правилам русского языка. Легко оперирует терабайтами данных, обеспечивая при этом все возможности современной БД.
- Aria — замена для MyISAM с поддержкой транзакций и улучшенной работой с памятью. Движок гарантирует целостность данных и при этом не уступает в скорости MyISAM.
- BDB(BerkeleyDB) — для совместимости с BerkeleyDB.
Шаг 4 — восстановить нормальные настройки сервера базы данных
Чтобы перезапустить сервер базы данных в нормальном режиме, вы должны отменить изменения, чтобы включить сеть и загрузить таблицу авторизации. Точно так же метод, который вы используете, зависит от того, используете ли вы MariaDB или MySQL.
Для MariaDB отключите ранее установленныйПеременные среды:
Затем используйтеПерезапускаем сервис:
Для MySQL удалите измененную конфигурацию systemd:
Вы увидите результат, подобный следующему:
Затем перезагрузите конфигурацию systemd, чтобы изменения вступили в силу:
Наконец, перезапустите службу:
База данных перезагружена и восстановлена до нормального состояния. ЧерезrootИдентификатор пользователя использует пароль для входа в систему, чтобы подтвердить, действителен ли новый пароль:
Вам будет предложено ввести пароль. Введите новый пароль, и вам будет предложено получить доступ к базе данных, как и ожидалось.
Сброс пароля с помощью init-file
При запуске сервиса MySQL можно указать файл, из которого будут выполнены команды sql сразу после запуска. Адрес этого файла указывается опцией —init-file. Но сначала давайте создадим файл, который будет изменять файл нашего пользователя:
Затем остановите сервис, если он запущен:
Или:
Теперь осталось выполнить наш файл:
Подождите минуту, чтобы всё успело сработать как нужно, а затем остановите этот процесс. В консоли команда сообщит started as proccess и PID процесса, этот PID нам и нужен, чтобы его остановить. Например:
Далее запустите mysql обычным способом и попробуйте войти со своим новым паролем:
Создание запросов.
SELECT используется для получение данных. Давайте получим значения столбца user и pass .
Или получим всю таблицу :
В столбцах таблицы могут содержаться повторяющиеся данные. Используйте SELECT DISTINCT для получения только неповторяющихся данных.
WHERE
В запросе мы можем использовать всяко разные условия. Выведем например все данные где user = ‘test’ :
- сравнение текста;
- сравнение численных значений;
- логические операции AND (и), OR (или) и NOT (отрицание).
ORDER BY
ORDER BY используется для сортировки результатов запроса по убыванию или возрастанию. ORDER BY отсортирует по возрастанию, если не будет указан способ сортировки ASC или DESC.
BETWEEN
С помощью BETWEEN мы можем выбрать определенный промежуток. Могут использованы числовые и текстовые значения, а также даты. Например с 2 по 4 запись :
LIKE
Оператор LIKE используется в WHERE, чтобы задать шаблон поиска похожего значения.
- _ — Подчеркнутый символ представляет собой один символ .
- % — Знак процента представляет нулевой, один или несколько символов.
- WHERE name LIKE ‘text%’ : Находит любые значения, начинающиеся с «text» .
- WHERE name LIKE ‘%text’ : Находит любые значения, заканчивающиеся на «text» .
- WHERE name LIKE ‘%text%’ : Находит любые значения, которые имеют «text» в любой позиции .
- WHERE name LIKE ‘_text%’ : Находит любые значения, которые имеют «text» во второй позиции .
- WHERE name LIKE ‘text_%_%’ : Находит любые значения, начинающиеся с «text» и длиной не менее 3 символов .
- WHERE name LIKE ‘text%data’ : Находит любые значения, начинающиеся с «text» и заканчивающиеся на «data» .
Агрегатные функции
- COUNT (Имя столбца) — возвращает количество строк
- SUM ( Имя столбца ) — возвращает сумму значений в данном столбце
- AVG ( Имя столбца ) — возвращает среднее значение данного столбца
- MIN ( Имя столбца ) — возвращает наименьшее значение данного столбца
- MAX ( Имя столбца ) — возвращает наибольшее значение данного столбца
Установка MySQL
Есть несколько вариантов установки, в зависимости от того, будете ли вы использовать СУБД на своём
личном компьютере (что рекомендуется для полноценного освоения), или будете использовать компьютеры
института.
Установка на личном компьютере
Вы можете воспользоваться тем же вариантом, что и для установки на компьютер института, но проще
будет использовать специальный инсталлятор.
Для установки на личном компьютере вы просто скачиваете с сайта http://dev.mysql.com/downloads/mysql/ MySQL
installer — это стандартный установщик, при помощи которого вы установите MySQL так же, как любую
другую прогрумму Windows. В процессе установке следует выбрать вариант «Developer Default», чтобы
установить полный необходимый вам набор инстурментов. Все остальные параметры можно оставить по
умолчанию. Пароль для администратора вы можете придумать сами.
Создание таблицы MySQL
Предположим, вы собрались встретиться с друзьями. Можно использовать MySQL для отслеживания сведений о событии.
Создайте новую таблицу MySQL:
Эта команда выполняет следующие действия:
- Создает таблицу с именем Potluck в каталоге events.
- Создает 5 столбцов таблицы: id, name, food, confirmed и signup date В графе «id» есть команда (INT NOT NULL PRIMARY KEY AUTO_INCREMENT), которая автоматически нумерует каждую строку.
- В столбце «name» используется команда VARCHAR, которая ограничивает ввод до 20 символов.
- Столбец «food» содержит перечень продуктов, которые должен принести каждый человек. Команда VARCHAR ограничивает ввод до 30 символов.
- Столбец «confirmed» указывает, получил ли тот или иной человек приглашение (Y или N).
- Столбец «date» показывает, когда гости подтвердили приглашение. MySQL требует, чтобы даты были записаны в виде гггг-мм-дд.
Снова запустите команду SHOW TABLES:
Чтобы MySQL напоминал о созданной таблице, используйте следующую команду:
Примечание: Хотя командная строка MySQL не различает регистров, имена таблиц и баз данных нужно вводить с учетом регистра (potluck — не то же самое, что POTLUCK или Potluck).
Возможные ошибки
1. ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
Причина: в новых версиях по умолчанию активированы политики на проверку сложности пароля. Их список можно посмотреть командой:
> SHOW VARIABLES LIKE ‘validate_password%’;
Вывод команды будет, примерно, следующим:
+—————————————+———+
| Variable_name | Value |
+—————————————+———+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+—————————————+———+
* где:
- validate_password_check_user_name — пароль не должен совпадать с именем пользователя.
- validate_password_dictionary_file — использовать специальный файл со словарем запрещенных паролей.
- validate_password_length — минимальная длина пароля.
- validate_password_mixed_case_count — сколько, как минимум, должно быть символов в малой и большой раскладках.
- validate_password_number_count — какое минимальное количество цифр использовать в пароле.
- validate_password_policy — позволяет задать определенный набор правил. Доступны значения LOW (или 0), MEDIUM (1), STRONG (2).
- validate_password_special_char_count — минимальное количество специальных символов (например, # или !).
Решение:
- Привести пароль в соответствие требованиям политик.
- Отключить политику, которая не позволяет использовать желаемый пароль. Например, чтобы отключить требование использовать цифры вводим:
> SET GLOBAL validate_password_number_count = 0;
2. ERROR 1728 (HY000): Cannot load from mysql.tables_priv. The table is probably corrupted
Причина: система считает, что таблица tables_priv в базе mysql неисправна.
Решение: чаще всего, ошибка возникает при переносе баз с одного сервера в другой. Если версии СУБД разные, таблица tables_priv может работать со сбоями. Для исправления необходимо выполнить команду mysql_upgrade — она проверяет все таблицы на совместимость с текущей версией MySQL/MariaDB и вносит исправления. Применение команды:
mysql_upgrade -u root -p
MySQL Tutorial for Developers
Are you a developer looking for learning MySQL fast? After completing this section, you’ll know how to work with MySQL more effectively as a developer. You’ll learn various techniques to manipulate database objects and interact with the data
Basic MySQL Tutorial
This section helps you get familiar with the basic MySQL. You’ll first how to interact with the data in the MySQL database using the SELECT statement. And then you’ll learn handy data selection techniques including joins, subqueries, and common table expressions. Finally, you’ll learn how to manipulate…
MySQL Stored Procedures
In this section, you will learn how to create stored procedures and stored functions in MySQL with clear explanation and practical examples.
MySQL Triggers
MySQL triggers are stored programs executed automatically to respond to specific events associated with a table such as an insert, update or delete. This section shows you how to work with MySQL triggers effectively.
MySQL Views
This tutorial introduces you to MySQL Views, which are named query stored in the database, and shows you step by step on how to manage views effectively.
MySQL Index
This section introduces you to the MySQL index concept and shows you how to manage indexes in MySQL to optimize your queries.
MySQL Full-Text Search
In this section, we show you how to use MySQL full-text search with various full-text searching techniques such as natural language search, Boolean language search and query expansion.
MySQL Tips
We provide you with the advanced MySQL techniques and tips to help you solve the most difficult challenges in MySQL effectively.
Другие примеры
Рассмотрим часто встречаемые операции по работе с пользователями сервера баз данных.
1. Особые права
Предоставление особых прав пользователю:
> GRANT SELECT, UPDATE ON base1.* TO ‘dbuser’@’localhost’ IDENTIFIED BY ‘password’;
* права на выборку и обновление данных во всех таблицах базы base1 для пользователя dbuser
** список всех возможных прав: all privileges, alter, create, create temporary tables, delete, drop, execute, file, index, insert, lock tables, process, references, reload, replication client, replication slave, select, show databases, shutdown, super, update, usage
2. Удаленное подключение
Разрешение на удаленное подключение и использование базы MySQL:
> GRANT ALL PRIVILEGES ON *.* TO ‘dbuser’@’192.168.0.55’ IDENTIFIED BY ‘password’;
* предоставит права пользователю dbuser, который будет подключаться с компьютера с IP-адресом 192.168.0.55.
Мы можем сделать менее жесткое ограничение, разрешив доступ из подсети (особенно удобно при использовании динамических адресов):
> GRANT ALL PRIVILEGES ON *.* TO ‘dbuser’@’192.168.0.%’ IDENTIFIED BY ‘password’;
* в данном примере мы разрешим подключение для любого узла из сети 192.168.0.0/24.
Или мы можем, вовсе, разрешить водключение с любого хоста (не безопасно):
> GRANT ALL PRIVILEGES ON *.* TO ‘dbuser’@’%’ IDENTIFIED BY ‘password’;
3. Права на резервное копирование
Создание учетной записи MySQL с правами создания резервных копий:
> GRANT SELECT, SHOW VIEW, RELOAD, REPLICATION CLIENT, EVENT, TRIGGER, LOCK TABLES ON *.* TO ‘backup’@’localhost’ IDENTIFIED BY ‘backup’;
4. Права доступа к определенной таблице
По сути, это такое же предоставление прав, но с указанием конкретной таблицы после базы:
> GRANT ALL PRIVILEGES ON base1.table1 TO ‘dbuser’@’localhost’ IDENTIFIED BY ‘password’;
* в данном примере предоставлены все права на таблицу table1 в базе base1.
5. Удаление пользователя
Нам может также понадобиться удалить ранее созданного пользователя. Это делается в два этапа:
> REVOKE ALL PRIVILEGES, GRANT OPTION FROM ‘dbuser’@’localhost’;
> DROP USER ‘dbuser’@’localhost’;
* в данном примере мы первой командой отняли все права у пользователя dbuser (localhost) и второй — удалили его.
6. Права на создание других пользователей
Чтобы наш пользователь мог создавать других пользоватлей, задаем права:
GRANT CREATE USER ON *.* TO ‘creator’@’localhost’;
* в данном примере мы даем права учетной записи creator, которая может подключаться к серверу с локального хоста.
Если нужно, чтобы из под данной учетной записи можно было также назначать права, добавим:
GRANT CREATE USER ON *.* TO ‘creator’@’localhost’ WITH GRANT OPTION;
* обратите внимание, что мы просто добавили WITH GRANT OPTION