Как создать пользователя mysql и настроить права доступа

Содержание

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.

Клиенты администрирования MySQL

  • Emma
    aptitude install emma
  • Nerocode SQLWave GUI Client for MySQL Database Server. OS: Windows
  • MySQL Navigator.
  • HeidiSQL. Использование Wine

  • SQLyog — запускается помощью Использование Wine

Не удаётся подключиться к локальному серверу

Одной из распространённых ошибок подключения клиента к серверу является «ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)».


Эта ошибка означает, что на хосте не запущен сервер MySQL () или вы указали неправильное имя файла сокета Unix или порт TCP/IP при попытке подключения.

Убедитесь, что сервер работает. Проверьте процесс с именем на хосте сервера, используя команды ps или grep, как показано ниже.

Если эти команды не показывают выходных данных, то сервер БД не работает. Поэтому клиент не может подключиться к нему. Чтобы запустить сервер, выполните команду .

Чтобы проверить состояние службы MySQL, используйте следующую команду:

Если в результате выполнения команды произошла ошибка службы MySQL, вы можете попробовать перезапустить службу и ещё раз проверить её состояние.

Если сервер работает (как показано) и вы по-прежнему видите эту ошибку, вам следует проверить, не заблокирован ли порт TCP/IP брандмауэром или любой другой службой блокировки портов.

PHP-разработчик (Magento)

AGIMA, от 180 000 ₽

tproger.ru

Вакансии на tproger.ru

Для поиска порта, который прослушивается сервером, используйте команду .

Создание таблицы 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).

Транзакции и атомарные операции MySQL

Поддержка транзакций в сервере MySQL реализуется при помощи обработчиков транзакционных таблиц типов InnoDB и BDB. Таблицы InnoDB обеспечивают соответствие требованиям ACID.

Однако для таблиц нетранзакционных типов, таких как MyISAM, в MySQL используется иная парадигма обеспечения целостности данных, получившая название атомарные операции. Атомарные операции в сравнении с транзакциями часто обеспечивают такую же или даже лучшую целостность при более высокой производительности. Поскольку сервер MySQL поддерживает обе парадигмы, пользователь может выбирать между скоростью, которую обеспечивают атомарные операции, и транзакционными возможностями для своих приложений. Такой выбор может быть сделан для каждой таблицы отдельно.

Ошибки запрета доступа в MySQL

В MySQL учётная запись (УЗ) определяется именем пользователя и клиентским хостом, с которого пользователь может подключиться. УЗ может также иметь данные для аутентификации (например, пароль).

Причин для запрета доступа может быть много. Одна из них связана с учётными записями MySQL, которые сервер разрешает использовать клиентским программам при подключении. Это означает, что имя пользователя, указанное в соединении, может не иметь прав доступа к базе данных.

В MySQL есть возможность создавать учётные записи, позволяющие пользователям клиентских программ подключаться к серверу и получать доступ к данным. Поэтому при ошибке доступа проверьте разрешение УЗ на подключение к серверу через клиентскую программу.

Увидеть разрешённые привилегии учётной записи можно, выполнив в консоли команду Входим в консоль (пример для Unix, для Windows консоль можно найти в стартовом меню):

В консоли вводим команду:

Дать привилегии конкретному пользователю в БД по IP-адресу можно, используя следующие команды:

Ошибки запрещённого доступа могут также возникнуть из-за проблем с подключением к MySQL (см. выше).

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.

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:

Granting Privileges

To grant all privileges on a specific database to a user, you can use the following commands:

Note You cannot create additional admin users. However, you can give a user full access to all databases you’ve created by running the command for each database.

To grant a user administrative privileges for a specific database, you must also give them the privilege. Here’s an example:

To grant a user only read privileges on a database, you can use the following command:

To grant a user privileges on only a specific table in a database, you can use the following command:

Granting additional privileges to a user does not remove any existing privileges. To , use the command.

Privilege Restrictions on DigitalOcean’s MySQL Managed Databases

By default, MySQL database clusters come with a user, , which has full access to every database you create. Instead of using to access the database, we recommend creating additional users who have only the privileges they need, following the principle of least privilege.


MySQL sets privileges based on account names, which consist of a user name and a host name in the format . You can specify the host by name (), IP address (), or using wildcard characters (, which matches all hosts). Learn more in MySQL’s documentation on specifying account names.

To ensure stability of the platform, DigitalOcean Managed MySQL Databases have some default restrictions on user privileges that cannot be changed. Users cannot insert or edit any of the following databases, but can select from them:

Users on DigitalOcean Managed MySQL Databases cannot insert, edit, or select from the database.

You can’t currently change a user’s privileges in the control panel, so to do so you need to use a command-line MySQL client like . After you create a user in the cluster, connect to the cluster as or another admin user. From here, the commands you need to execute depend on the permissions you want the user to have.

Использование подготовленных запросов

Пример использования подготовленных запросов (Prepared Statements) для PHP

mysql_query("PREPARE myinsert FROM
'INSERT INTO
mytable (name, price)
VALUES (?, ?)'");
for ($i = 0; $i < 1000; $i++){
mysql_query("SET @name = 'Товар # $i'");
mysql_query("SET @price = " . ($i * 10));
mysql_query("EXECUTE myinsert USING @name, @price");
}

Ссылки

  • Справочное руководство по MySQL. Ошибка Too many connections

  • 10 cекретов консольного клиента MySQL

  • Особенности триггеров в MySQL (SHOW TRIGGERS и SUPER PRIVELEGES)

  • Триггеры MySQL

  • UDF:Вызов внешней программы из MySQL

  • Wiki Справочник по MySQL

  • Справочное руководство по MySQL

  • Документация по MySQL

  • FAQ.MySQL.RU

  • Настройка кластера MySQL на CentOS 5, или злоключения с кластером MySQL

  • Несколько слов о MySQL-proxy

Доступ к MySQL

После установки MySQL на сервер введите следующую команду в терминал, чтобы  получить доступ к оболочке MySQL:

Введя root-пароль MySQL (не спутайте с root-паролем сервера), приступайте к созданию базы данных MySQL.

Запомните две вещи:

  • Все команды MySQL заканчиваются символом точки с запятой (;). Команда, в конце которой данный символ отсутствует, не будет выполнена.
  • Кроме того, команды MySQL, как правило, пишутся верхним регистром, а базы данных, таблицы, имена пользователей и текст — нижним регистром, чтобы их было легче различать (хотя это не обязательно). Однако командная строка MySQL нечувствительна к регистру.

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

Резервное копирование журналаBack up the log

Для полных моделей восстановления и моделей с неполным протоколированием резервное копирование может предотвратить усечение журнала транзакций, если оно не было сделано недавно.Under the full recovery model or bulk-logged recovery model, if the transaction log has not been backed up recently, backup might be what is preventing log truncation. Если резервная копия журнала создается в первый раз, следует сделать вторую резервную копию журнала , чтобы разрешить компоненту Компонент Database EngineDatabase Engine усечение журнала до точки последнего резервного копирования.If the log has never been backed up, you must create two log backups to permit the Компонент Database EngineDatabase Engine to truncate the log to the point of the last backup. Усечение журнала освобождает пространство для новых записей журнала.Truncating the log frees space for new log records. Чтобы избежать повторного переполнения журнала, следует чаще выполнять резервное копирование.To keep the log from filling up again, take log backups frequently.

Создание резервной копии журнала транзакцийTo create a transaction log backup

  • SqlBackup (SMO)SqlBackup (SMO)

Освобождение места на дискеFreeing disk space

Возможно, следует освободить место на диске, где находится файл журнала транзакций для базы данных. Для этого можно удалить или переместить другие файлы.You might be able to free disk space on the disk drive that contains the transaction log file for the database by deleting or moving other files. Освобожденное место на диске позволит системе восстановления автоматически увеличить размер файла журнала.The freed disk space allows the recovery system to enlarge the log file automatically.

Перемещение файла журнала на другой дискMove the log file to a different disk

Если на текущем диске невозможно освободить достаточное количество места, следует переместить файл на другой диск, где места достаточно.If you cannot free enough disk space on the drive that currently contains the log file, consider moving the file to another drive with sufficient space.

Перемещение файла журналаMove a log file

Перемещение файлов базы данныхMove Database Files

Увеличение размера файла журналаIncrease log file size

Если на диске, на котором находится журнал, доступно свободное место, можно увеличить размер файла журнала.If space is available on the log disk, you can increase the size of the log file. Максимальный объем файлов журнала составляет 2 терабайта (ТБ) на файл журнала.The maximum size for log files is two terabytes (TB) per log file.

Увеличение размера файлаIncrease the file size

Если автоувеличение отключено, база данных находится в режиме «в сети» и на диске достаточно свободного места, выполните одно из следующих действий.If autogrow is disabled, the database is online, and sufficient space is available on the disk, either:

  • Вручную увеличьте размер файла для получения одного шага роста размера файла.Manually increase the file size to produce a single growth increment.

  • Включить свойство автоматического увеличения при помощи инструкции ALTER DATABASE, чтобы установить отличное от нуля значение шага роста для параметра FILEGROWTH.Turn on autogrow by using the ALTER DATABASE statement to set a non-zero growth increment for the FILEGROWTH option.

Добавление файла журнала на другой дискAdd a log file on a different disk

Добавьте новый файл журнала базы данных на другом диске, где достаточно места, с помощью инструкции ALTER DATABASE <имя_базы_данных> ADD LOG FILE.Add a new log file to the database on a different disk that has sufficient space by using ALTER DATABASE <database_name> ADD LOG FILE.

Добавление файла журналаAdd a log file

Добавление файлов данных или журналов в базу данныхAdd Data or Log Files to a Database

Настройка репликации Master-Master в MariaDB

В схеме репликации Master-Master любой из серверов баз данных MariaDB/MySQL, может использоваться как для записи информации, так и для чтения. Многие считают данный тип репликации не совсем привлекательным. Если из строя выйдет один из серверов, с большей вероятностью потери данных будут и на других Master-серверах. Обычно данная схема используется, когда на всех серверах нужно обеспечить и запись, и чтение информации.

Репликация основана на специально файле binlog, в который Master сервер сохраняет все операции с БД. Slave сервер подключается к мастеру и применяет команды к своим базам.

1. MariaDB: Настройка первого мастер сервера (Master-1)

Добавляем в наш конфигурационный файл my.cnf на первом сервере MariaDB следующие строки:

Создадим пользователя для настройки репликации:

Для добавления Slave нам понадобятся данные bin_log с сервера Master1.

+--------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+--------------------+----------+--------------+------------------+

| mariadb-bin.000002 | 664 | | |

+--------------------+----------+--------------+------------------+

1 row in set (0.000 sec)

Это будет наш Master-1.

2. MariaDB: Настройка второго мастер сервера (Master-2)

Подключимся ко второму MariaDB серверу, открываем конфигурационный файл my.cnf и добавляем информацию:

И так же создаем пользователя на втором сервере:

Bin_log на Master-2:

+--------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000001 | 667 | | |
+--------------------+----------+--------------+------------------+
1 row in set (0.000 sec)

Приступим к настройке подключения между серверами MariaDB в нашем програмном кластере:

Останавливаем slave:

Добавляем Master-1 на второй сервер:

Запускаем репликацию:

Подключаемся на Master-1 и выполним ту же процедуру, только указав уже данные второго нашего сервера:


Проверим статус второго сервера:

Как видим на скриншотах, коннекты на двух серверах есть, ошибок не наблюдается.

3. Проверка репликации между серверами MariaDB.

Далее, чтобы проверить, что репликация между двумя серверами MariaDB работает в режиме master+master и что она вообще работает, мы создадим новую базу на Master-1 и создадим в ней таблицу.

Query OK, 1 row affected (0.001 sec)
Database changed

-> AuthorID INT NOT NULL AUTO_INCREMENT,

-> AuthorName VARCHAR(100),

-> PRIMARY KEY(AuthorID)

-> );

Query OK, 0 rows affected (0.005 sec)

Проверяем, что база автоматически появилась и на втором мастере, и в ней также присутствует наша таблица:

+--------------------+
| Database |
+--------------------+
| information_schema |
| master1 |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.001 sec)
+-------------------+
| Tables_in_master1 |
+-------------------+
| hello |
+-------------------+
1 row in set (0.000 sec)

База создалась и на втором мастере. Для полной проверки, создадим таблицу в базе данных master1 со второго мастер-сервера и проверим, передадутся ли они в обратную сторону.

-> AuthorID INT NOT NULL AUTO_INCREMENT,

-> AuthorName VARCHAR(100),

-> PRIMARY KEY(AuthorID)

-> );

Query OK, 0 rows affected (0.006 sec)

Таблица hello_master1 передалась на первый сервер:

+-------------------+

| Tables_in_master1 |

+-------------------+

| hello |

| hello_master1 |

+-------------------+

2 rows in set (0.000 sec)

Как вы видите, новая таблица появилась на Master-1. Репликация работает так, как мы и хотели.

Что Такое База Данных MySQL?

Чтобы понять MySQL, вам нужно знать, что такое база данных. БД — это виртуальное хранилище, где вы можете сохранять необходимые данные для создания сайтов и веб-приложений.

База данных MySQL может хранить данные учётных записей пользователей, например, имена пользователей, пароли, адреса электронной почты и любую информацию, которую вы хотите сохранить для дальнейшего использования.

Однако хранимые данные должны быть организованны в определённом порядке. Вот почему у нас есть системы управления базами данных. Эти инструменты используются для связи с базой данных и позволяют разработчикам структурировать, хранить, создавать и изменять данные.

MySQL — одна из самых популярных систем управления базами данных. Её популярность объясняется простотой использования и поддержкой огромного сообщества. Даже такие платформы, как и , в некоторой степени используют MySQL.

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. *Оригинальная [версия…

Шаг 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 закончена.

Теперь остается окончательно убедиться, что репликация работает. Внесите изменения на первом сервере — они должны попасть на второй. И наоборот, при внесении изменений на втором сервере, они должны попадать на первый.

Создание запросов.

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 ( Имя столбца ) — возвращает наибольшее значение данного столбца

Сброс пароля для root

При необходимости, мы можем сбросить пароль для суперпользователя mysql. Для этого необходимо запустить сервер баз данных в безопасном режиме и ввести команду на смену пароля.

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

systemctl stop mysql

… или:

systemctl stop mariadb

Создаем каталог /var/run/mysqld и зададим для него нужные права:

mkdir -p /var/run/mysqld

chown mysql:mysql /var/run/mysqld

* в некоторых системах данного каталога может не быть, однако, для безопасного режима mysql он необходим.

Запускаем в безопасном режиме СУБД:

mysqld_safe —skip-grant-tables &

Запускаем оболочку sql — система не потребует пароль:

mysql -uroot

Меняем пароль запросов sql в базе mysql:

> use mysql;

> UPDATE user SET authentication_string=PASSWORD(«new_password») WHERE User=’root’;

> FLUSH PRIVILEGES;

> quit

Уничтожаем процесс, который запустили ранее:

kill %1

После, запускаем mysql в нормальном режиме:

systemctl start mysql

… или:

systemctl start mariadb


С этим читают