на каком порту работает mariadb
Установка, настройка, бэкапы в MariaDB
База данных важный элемент, к примеру, для такого стека как LAMP (Linux, Apache, MySQL, PHP). В RedHat (CentOS) MariaDB установлен по умолчанию.
В этой этой статье вы узнаете, как установить MariaDB на CentOS 7, как выполнять основные задачи администрирования и как делать бэкапы и восстановление баз.
Базовая конфигурация MariaDB
Сначала установим MariaDB и выполним базовые настройки. В этом разделе вы узнаете, как это сделать и как сделать небольшие изменения в файле конфигурации /etc/my.cnf.
Чтобы установить MariaDB, выполните следующие действия:
После установки MariaDB рекомендуется также защитить его. Для этого выполните mysql_secure_installation. Эта команда запустит список вопрсов, которые описаны ниже.
В листинге 2 показаны выходные данные команды, причем все вопросы выделены жирным шрифтом:
Enter current password for root (enter for none): если у пользователя БД root уже есть пароль, введите его здесь. Если нет, просто нажмите Enter, чтобы продолжить.
Set root password? [Y/n]: ответьте y, чтобы установить пароль для root, и введите его два раза.
Remove anonymous users? [Y/n]: ответьте y, чтобы удалить анонимных пользователей, которые по умолчанию есть в БД.
Disallow root login remotely? [Y/n]: ответьте y, чтобы гарантировать, что пользователь root может подключаться к БД только локально. Для пользователей с правами root, которые хотят получить удаленный доступ, все равно надо сначала подключиться к серверу по SSH.
Remove test database and access to it? [Y/n]: после установки создается тестовая БД. По соображениям безопасности рекомендуется удалить эту базу, но поскольку в этой статье вы научитесь работать с MariaDB, вы должны сохранить ее. Поэтому выбираем n.
Reload privilege tables now? [Y/n]: ответьте y, чтобы сохранить и применить внесенные изменения.
MariaDB можно использовать локально или по сети. Преимущества есть у обоих вариантов. Если MariaDB доступен по сети, легко настроить стек сервисов, где база работает на одном сервере, а связанные сервисы работают где-то еще. Этот вараинт предлагает максимально возможную производительность.
Если же вы хотите максимально повысить безопасность, рассмотрите возможность полного изолирования БД от сети. Это значит, что все сервисы, использующие БД, доступны на одном сервере.
Чтобы определить, будет ли MariaDB использовать сеть, вы измените несколько параметров в файле конфигурации /etc/my.cnf (который является основным файлом конфигурации MariaDB). В листинге 3 показан пример содержимого этого файла.
В разделе [mysqld] вы можете установить множество параметров, включая следующие:
bind-address адрес, по которому сервис БД будет прослушиваться.
Установите значение ::, если вы хотите разрешить доступ через все IP-адреса (IPv4, а также IPv6), или оставьте пустым, чтобы разрешить доступ только через IPv4. Кроме того, вы можете указать IP-адреса конкретных интерфейсов, с которыми база данных должна связываться.
skip-network установите значение 1, чтобы отключить всю сеть.
В этом случае связь с другими локальными процессами будет проходить через сокеты, которые по умолчанию находятся в /var/lib/mysql/mysql.sock. При использовании этого подхода клиентскому ПО также требуется доступ к базе данных через сокеты, и оно не может использовать localhost и IP для доступа к локальной БД.
port указывает порт для прослушивания соединений TCP/IP.
Если к базе данных требуется удаленный доступ, необходимо также открыть файрвол. MariaDB использует сервис-файл firewalld mysql, который находится в /usr/lib/firewalld/services/mysql.xml, поэтому в файрволе можно легко открыть доступ через стандартный порт 3306 всего одной строкой:
В упражнении 1 вы узнаете, как установить базу данных MariaDB.
Упражнение 1. Установка MariaDB
В этом упражнении вы выполните базовую установку MariaDB. Вы также отключите доступ к сети и примените настройки безопасности. Затем вы проверите, что некоторые системные базы данных по умолчанию доступны.
2. Введите systemctl start mariadb; systemctl enable mariadb чтобы запустить и включить в автозагрузку mariadb.
4. Отключите сетевое взаимодействие, добавив строку skip_networking=1 в /etc/my.cnf и перезапустите mariadb, используя systemctl restart mariadb.
5. Настройте базовую защиту mariadb, используя mysql_secure_installation. Установите пароль для root, отключите удаленный доступ для root, удалите тестовую базу данных и всех анонимных пользователей.
7. В командной строке MariaDB введите show databases; для отображения всех доступных базы. Результат должен выглядеть как в листинге 4.
8. Введите exit; чтобы выйти из оболочки MariaDB.
При работе с MariaDB важно знать разницу между базами данных, таблицами и записями. Таблица 1 суммирует их.
Таблица 1. Элементы базы данных
Название | Описание |
Database (База данных) | Совокупность данных, состоящая из разных таблиц. Сотрудники могут быть именем базы данных. |
Table (Таблица) | Классы элементов, которые используются в базе данных. В базе данных сотрудника вы можете иметь такие таблицы, как статус занятости и адресная книга. В базе данных таблицы могут быть взаимосвязаны. В каждой базе данных у вас должна быть хотя бы одна таблица. |
Fields (Поля) | Тип информации, которая создается в таблице. В таблице адресной книги у вас есть такие поля, как, например, название, улица, город. |
Record (Запись) | Определенный набор данных хранится в таблице. Например, у каждого клиента есть запись в базе данных адресной книги, в которой содержатся записи об имени и улице. |
Value (Значение) | Конкретные значения, которые хранятся в поле. Например, поле имени в таблице адресной книги может иметь значение Линда Джонс.Выполнение простых задач администрирования базы данныхДаже если вы являетесь администратором Linux, полезно иметь базовые знания о командах администрирования базы данных. Это не делает вас администратором базы данных, но помогает выполнять основные задачи по настройке. Эта команда регистрирует вас как пользователя root на сервере localhost, а затем запрашивает пароль. После входа в систему, как показано в упражнении 1, вы входите в интерактивную оболочку MySQL, где будете работать с базами данных. Вы уже видели команду show databases;, которая отображает список доступных баз данных. Работа с базами данных выглядит как работа с каталогами. Администратор создает базу данных, затем начинает использовать эту базу и затем вводит в неё контент. Команда USE используется как команда cd из оболочки bash. Там, где cd позволяет легко переключаться между каталогами, команда USE позволяет переключаться между базами данных. Попробуйте, например, следующие команды (после входа в среду оболочки MySQL от имени root): Листинг 5 В MariaDB, как и в MySQL, вы будете использовать язык структурированных запросов (SQL) для манипулирования данными в базе данных. Основные команды позволяют создавать, читать, обновлять и удалять. Эти команды также называются операциями CRUD: create, select, update, и delete. Перед вставкой данных в базу данных вам необходимо создать хотя бы одну таблицу. Для этого используйте CREATE TABLE, а затем имя таблицы, которую вы хотите добавить, например CREATE TABLE addressbook(name VARCHAR(40), street VARCHAR(40));. При определении таблицы вы также определяете записи, которые вы хотите добавить в таблицу, в дополнение к типу данных, который будет храниться в этой таблице. В этом примере это просто тип VARCHAR, который позволяет хранить 40 байт переменных данных. Если вы работаете с базой данных, которая уже была определена, или если вам нужно проверить, что вы только что создали, вам нужно выяснить атрибуты таблицы. Для этого используйте DESCRIBE, в случае с адресной книгой DESCRIBE addressbook;. Команды даст результат, как в листинге 6, который сначала показывает, как создать таблицу, а затем показывает, как получить информацию о полях, хранящихся в этой таблице. После того, как вы выяснили, какие поля необходимы для создания данных в таблице, вы можете использовать команду INSERT, чтобы добавить их: INSERT INTO addressbook (name,street) VALUES (‘linda jones’,’state street’);. В этой команде вы сначала ссылаетесь на имя таблицы, в которую необходимо добавить данные, перечисляете конкретные атрибуты, которые вы хотите заполнить, а затем перечисляете значения, которые вы хотите ввести в эти конкретные атрибуты. Чтобы убедиться, что команда для вставки данных сработала, используйте SELECT * from addressbook;. Чтобы удалить данные, используйте команду DELETE, например DELETE FROM addressbook WHERE name = ‘lucy ball’;. Обратите внимание, что в этой команде важно не забыть часть WHERE. Если вы опустите его, все записи в таблице будут удалены. Также обратите внимание, что в этой команде (как и в любой другой команде, которую вы используете в этом примере) вам необходимо указать, к какой таблице вы хотите применить изменения. Чтобы изменить данные, используйте команду UPDATE: например, UPDATE addressbook SET street=’main street’ WHERE name = ‘linda jones’;. Обратите внимание, что в этой команде вам нужно использовать оператор WHERE, чтобы указать MariaDB, какую запись использовать, и команду SET, чтобы указать атрибут, который вы хотите изменить, с его новым значением. Чтобы прочитать записи, используйте команду SELECT: например, SELECT name,street FROM addressbook;. Кроме того, вы можете выбрать отображение всех атрибутов, используя *: SELECT * FROM addressbook; и используя where, вы можете создавать простые запросы, фильтруя по конкретным результатам: SELECT * FROM addressbook WHERE street=’State street’;. При использовании предложений WHERE вы можете использовать разные операторы: Для создания физических резервных копий рекомендуется использовать тома LVM. В LVM вы можете создать снапшот, который содержит фактическое состояние тома LVM на момент создания снапшота. Затем будет сделано само физическое резервное копирование из снапшота, а не из открытого тома LVM. Снапшот LVM похож на фотографию логического тома LVM. Сделав резервную копию снапшота, вы обязательно получите стабильную резервную копию среды, в которой в настоящий момент нет открытых файлов. Чтобы создать моментальный снапшот тома базы данных, ее необходимо временно остановить. Грубо говоря, процедура создания моментального снапшота тома базы данных выглядит следующим образом: 3. Теперь, когда снапшот создан, введите UNLOCK TABLES; чтобы снова запустить базу данных. 4. Запустите задание резервного копирования. 5. После завершения задания резервного копирования используйте lvremove, чтобы удалить том снапшота. В упражнении 3 вы можете узнать, как создать физическую резервную копию базы данных. Упражнение 3. Создание физической резервной копии базы данных MySQL.2. Выполните команду df /var/lib/mysql, чтобы узнать, какой том LVM используется для размещения этого расположения. (Эта команда будет работать, только если во время установки был создан том LVM для размещения физической базы данных.) 3. Убедитесь, что в группе томов, в которой находится том базы данных, нераспределенное дисковое пространство все еще доступно, используя vgs vgname. 6. Вернитесь к сеансу MariaDB и введите UNLOCK TABLES;, чтобы разблокировать таблицы. 9. После успешного создания резервной копии необходимо размонтировать и удалить снимок: umount /mnt/snapshot; lvremove /dev/vgdata/lvmariadb-snapshot. Восстановление резервных копийConfiguring MariaDB for Remote Client AccessContentsSome MariaDB packages bind MariaDB to 127.0.0.1 (the loopback IP address) by default as a security measure using the bind-address configuration directive. Old MySQL packages sometimes disabled TCP/IP networking altogether using the skip-networking directive. Before going in to how to configure these, let’s explain what each of them actually does: If bind-address is bound to 127.0.0.1 (localhost), one can’t connect to the MariaDB server from other hosts or from the same host over TCP/IP on a different interface than the loopback (127.0.0.1). This for example will not work (connecting with a hostname that points to a local IP of the host): Using ‘localhost’ works when binding with bind_address : Finding the Defaults FileTo enable MariaDB to listen to remote connections, you need to edit your defaults file. See Configuring MariaDB with my.cnf for more detail. Common locations for defaults files: You can see which defaults files are read and in which order by executing: The last line shows which defaults files are read. Editing the Defaults FileOnce you have located the defaults file, use a text editor to open the file and try to find lines like this under the [mysqld] section: (The lines may not be in this order, and the order doesn’t matter.) If you are able to locate these lines, make sure they are both commented out (prefaced with hash (#) characters), so that they look like this: (Again, the order of these lines don’t matter) This works as one can have any number of mysqld sections. Save the file and restart the mysqld daemon or service (see Starting and Stopping MariaDB). You can check the options mysqld is using by executing: Granting User Connections From Remote HostsNow that your MariaDB server installation is setup to accept connections from remote hosts, we have to add a user that is allowed to connect from something other than ‘localhost’ (Users in MariaDB are defined as ‘user’@’host’, so ‘chadmaynard’@’localhost’ and ‘chadmaynard’@’1.1.1.1’ (or ‘chadmaynard’@’server.domain.local’) are different users that can have completely different permissions and/or passwords. To create a new user: (If you have a fresh install, it is normal for no rows to be returned) Now you have some decisions to make. At the heart of every grant statement you have these things: It is common for people to want to create a «root» user that can connect from anywhere, so as an example, we’ll do just that, but to improve on it we’ll create a root user that can connect from anywhere on my local area network (LAN), which has addresses in the subnet 192.168.100.0/24. This is an improvement because opening a MariaDB server up to the Internet and granting access to all hosts is bad practice. For more information about how to use GRANT, please see the GRANT page. At this point we have accomplished our goal and we have a user ‘root’ that can connect from anywhere on the 192.168.100.0/24 LAN. Port 3306 is Configured in FirewallOne more point to consider whether the firwall is configured to allow incoming request from remote clients: On RHEL and CentOS 7, it may be necessary to configure the firewall to allow TCP access to MySQL from remote hosts. To do so, execute both of these commands: How to Change Default MySQL/MariaDB Port in LinuxIn this guide we’ll learn how to change the default port that MySQL/MariaDB database binds in CentOS 7 and Debian-based Linux distributions. The default port that MySQL database server is running under Linux and Unix is 3306/TCP. In order to change the default MySQL/MariaDB database port in Linux, open MySQL server configuration file for editing by issuing the below command. Search for the line stat starts with [mysqld] and place the following port directive under [mysqld] statement, as shown in the below file excerpts. Replace the port variable accordingly.
After you’ve added the new MySQL/MariaDB port, save and close the configuration file and install the following package under CentOS 7 in order to apply the required SELinux rules to allow the database to bind on the new port. Next, add the below SELinux rule to bind MySQL socket on the new port and restart the database daemon to apply changes, by issuing the following commands. Again, replace MySQL port variable to match your own port number. In order to verify if the port configuration for MySQL/MariaDB database server has been successfully applied, issue netstat or ss command and filter the results via grep command in order to easily identify the new MySQL port.
In case of remote connection to MySQL database, the root user must be explicitly configured to allow incoming connections form all networks or just an IP address, by issuing the below command in MySQL console: Remotely log in to MySQL server via a command line client on the new port by issuing the below command.
Finally, once you’ve changed MySQL/MariaDB database server port, you need to update your distribution Firewall rules to allow incoming connections to the new TCP port so that remote clients can successfully connect to the database. If You Appreciate What We Do Here On TecMint, You Should Consider:TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all. If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation. We are thankful for your never ending support. Русские БлогиУдаленное подключение к базе данных MySQL (MariaDB)В реальном проекте или разработке проекта, если сервер базы данных размещен в машинном отделении или в кабинете машинного отделения, персонал по разработке или разработке может использовать только контент, который я представляю ниже, только когда он может только удаленно подключаться к базе данных через сеть для работы. Диаграмма топологии выглядит следующим образом: 1. Для подключения удаленного клиента к базе данных требуется установить клиентский инструмент mysql. В Интернете есть много клиентских инструментов mysql. Вы можете Baidu. 2. Проверьте IP-адрес Windows 2008, чтобы увидеть, находится ли он в том же сегменте сети, что и сервер (даже если он не находится в одном и том же сегменте сети, если обе стороны могут проверять связь друг с другом, хорошо), метод проверки следующий: 3. Проверьте соединение с сервером базы данных на клиенте: Приведенная выше информация обратной связи показывает, что в сетевом соединении между клиентом и сервером нет проблем. 4. Клиент использует имя пользователя и пароль, чтобы попытаться подключиться к базе данных удаленно через сеть Эта ошибка указывает на то, что база данных не позволяет любому хосту, кроме этого компьютера, подключаться к базе данных. Чтобы решить эту проблему, нам нужно изменить права доступа на сервере, чтобы другие узлы могли обращаться к базе данных. 5. Следующие два шага должны быть выполнены на сервере (1) В целях безопасности установите пароль для пользователя root базы данных. Таким образом, пользователи должны ввести правильное имя пользователя и пароль для входа в базу данных. Вы можете ввести команду exit, чтобы выйти из базы данных, затем войти в систему и повторить попытку, чтобы узнать, что новый пароль вступил в силу. (2) Откройте права доступа для других хостов для удаленного подключения к базе данных и снова войдите в базу данных: Таким образом, права доступа к базе данных устанавливаются. 6. Вернитесь к клиенту и попробуйте подключиться, как показано на рисунке 1, который показывает, что соединение с базой данных успешно. Примечание. Если соединение не установлено, брандмауэр на сервере может не закрыться. systemctl disable firewalld Закройте firewalld и перезапустите систему. Одно из отличий между MariaDB и обычной базой данных MySQL состоит в том, что в ней имеется более одного файла конфигурации, который помещает разные данные в разные файлы конфигурации. Предыдущее содержимое /etc/mysql/my.cnf таково: Судя по комментариям в файле, в нем так много конфигурационных файлов Вот почему иногда связанные настройки в my.cnf не работают (могут иметь те же элементы в других файлах конфигурации, MySQL, наконец, использует настройки в другом файле). Результаты приведены ниже: К счастью, эти два элемента находятся в одном и том же файле (мой собственный не является элементом пропуска сети) Только этого недостаточно. Мы просто включили опцию MySQL для мониторинга удаленных подключений. Далее нам нужно назначить разрешения соответствующей учетной записи MySQL, чтобы разрешить удаленное подключение к MySQL с использованием этой учетной записи. Просмотр информации об учетной записи пользователя: Элементом хоста в корневой учетной записи является localhost, что означает, что учетная запись может входить только локально. Нам нужно изменить разрешения и ввести команду: Изменить пароль удаленного подключения Изменить разрешения. % Означает, что для всех IP-адресов пароль означает, что этот пароль будет использоваться для входа в систему от имени пользователя root. Если вы хотите разрешить подключение только определенным IP-хостам, вы можете изменить его на Примечание. В настоящее время пароль для удаленного подключения может отличаться от вашего пароля при локальном входе в систему, в основном зависит от того, какой пароль вы указали после IDENTIFIED BY После настройки разрешений, вы не должны забывать обновить, чтобы сделать его эффективным Сохранить изменения. Посмотрите на информацию о пользователе еще раз: В это время было обнаружено, что существует еще один элемент, чем раньше, и его хост-элемент был%. На этот раз конфигурация прошла успешно, и мы можем использовать эту учетную запись для удаленного доступа. Если все это сделано и все еще не может подключиться, вы можете увидеть, заблокирован ли порт брандмауэром
|