Цель этого руководства — показать, как получить удаленный доступ к MySQL с помощью учетной записи root. Обычной практикой безопасности является отключение удаленного доступа для учетной записи root, но очень просто включить этот доступ в .
Прочтите и следуйте пошаговым инструкциям, чтобы разрешить удаленный доступ root на вашем сервере MySQL.
В этом уроке вы узнаете:
- Как разрешить удаленный доступ к корневой учетной записи в MySQL

Если вы работаете с База данных MySQL , значит, вы уже знаете о проблемах, с которыми вы сталкиваетесь при обеспечении безопасности своей базы данных. От попыток взлома базы данных с использованием SQL-инъекций до атак грубой силы-сложно обеспечить безопасность ваших данных, особенно если вы работаете с базой данных удаленно.
Есть способы настроить SQL-сервер для разрешения удаленных подключений. , но вам нужно быть осторожным, поскольку разрешение удаленных подключений к серверу MySQL может сделать вашу базу данных легкой мишенью для хакеров. Если вы хотите разрешить безопасные удаленные подключения к базе данных MySQL, вот что вам нужно знать.
Учетная запись root — это учетная запись суперпользователя, которая предлагает широкий спектр привилегий во всех базах данных MySQL. По умолчанию начальный пароль для учетной записи root — «пустой / пустой», что позволяет любому пользователю получить доступ к серверу MySQL как root.
- Чтобы войти в систему как пользователь root в Linux:
- Перед тем, как начать
- Установка диапазона IP-адресов безопасного связывания
- Подключение к удаленному серверу с помощью MySQL
- Подключение к MySQL в Linux или Mac
- Подключение к MySQL в Windows
- Защита вашей базы данных Данные
- Разрешить удаленный доступ root пошаговые инструкции
- Как установить, изменить и восстановить пароль root MySQL
- Установка пароля в первый раз
- Изменение пароля пользователя root MySQL
- Заключительные мысли
- Восстановите свой пароль MySQL
- Как решить ошибку MySQL: доступ запрещен для пользователя root @ localhost
- Настройка брандмауэров
- Настроить брандмауэры Linux
- Настройте брандмауэры Windows
- Разрешение удаленного доступа пользователей к базе данных MySQL
- Заключение
Чтобы войти в систему как пользователь root в Linux:
- Выберите меню «Пуск»> «Выход» в правом верхнем углу. Это позволяет вам выйти из учетной записи пользователя, которую вы используете в данный момент.
- Теперь вы увидите окно входа в систему, и здесь вы входите в систему, используя имя пользователя «root» и пароль, который вы установили для пользователя root. Если в окне входа несколько пользователей, выберите других и войдите в систему.
Если пароль не установлен, или вы забыли или хотите изменить свой пароль MySQL, ниже приводится руководство о том, как установить / восстановить пароль.
Update: This post has garnered a lot of attention. So I’d like to clarify up front: this article is not about hacking into other databases. This is about configuring a server you own so that you can access it from a remote machine on the same network. It is completely insecure and should never be used for production deployments.
Very quickly, another thing that I typically like to do on my server boxes is allow root access to my Mysql database from remote computers. I don’t forward the port through my router and I use a very secure password (doesn’t everyone?). I don’t want to create a security risk, I just want to connect to the database from other computers around my network — particularly from my laptop.
Again (like most of my instructions) these instructions are for Ubuntu — currently Edgy Eft.
apt-get mysql-server
Ubuntu installs Mysql at /etc/mysql/
by default. Now we need to set a root password.
'LOCALHOST"
> = PASSWORD('
Now while we’re still here, we’ll create a new HOST for root and allow root to login from anywhere.
We’re almost done now. We just have to tell Mysql to allow remote logins.
vi /etc/mysql/my.cnf
Out-of-the-box, MySQL only allows connections from the localhost identified by the IP Address of 127.0.0.1. We need to remove that restriction, so find the line that says
and comment it out.
# bind-address = 127.0.0.1
That’s all there is to it! Now get your favorite MySql client and start developing.
По-умолчанию, сервер MySQL принимает запросы только с localhost, т.е. только с того компьютера, на котором он установлен. В большинстве случаев этого достаточно, тем более что такое поведение обеспечивает лучшую защищенность сервера от атак. Однако случается, что нужно предоставить доступ к базам данным пользователям из сети. Например, для сервиса, который работает на другой машине.
В общем случае нам необходимо выполнить 2 действия:
а) Разрешить серверу MySQL прослушивание на сетевых интерфейсах (не только на 127.0.0.1)
б) Создать разрешения для сетевых пользователей.
Таким образом, чтобы получить доступ из сети, нам необходимо завести дополнительных пользователей в MySQL с указанием уже не localhost. Причем, Вы можете как указать конкретные IP адреса, с которых разрешено этим пользователям подключаться, так и специальный символ ‘%’, который обозначает «любые компьютеры, кроме localhost».
Вот пример имен пользователей:
- username@’localhost’ : подключаться может только с localhost
- username@’192.168.0.1′ : подключаться может только с 192.168.0.1
- username@’%’ : подключаться может с любого компьютера, кроме localhost
- username@’192.168.0.%’ : подключаться может с любого компьютера, IP-адрес которого начинается с 192.168.0.
Как видно, для localhost пользователя необходимо всегда указывать отдельно.
Итак, давайте дадим к серверу MySQL доступ из сети.
1) Во-первых, необходимо проверить, что сервер слушает запросы не только на localhost.
Открываем файл /etc/mysql/my.cnf и ищем в нем строчку bind-address. Нам нужно, чтобы она была раскоментирована и содержала значение 0.0.0.0 :
Если строчку Вы меняли — необходимо перезагрузить сервер MySQL:
# /etc/init.d/mysql restart
По-умолчанию во FreeBSD сервер MySQL слушает на всех доступных интерфейсах и ничего дополнительно менять не нужно.
2) Теперь необходимо добавить пользователей, имеющих доступ из сети. Без этого сервер будет слушать сеть, но пускать все равно к себе не будет.
# mysql -u root -p
Password:
// приветствие MySQL
Второму же пользователю разрешается заходить с любого компьютера вообще (кроме localhost, конечно), но он имеет полный доступ только к базе mydatabase.
По подобию можно добавлять необходимых пользователей с необходимыми привилегиями.
3) Проверяем сетевой доступ.
Если сервер не пускает — в первую очередь проверьте — а не стоит ли на пути к нему файерволов и открыт ли на этих файерволах порт MySQL: 3306.
Ну вот и все.
Перед тем, как начать
Прежде чем вносить какие-либо изменения в базу данных MySQL, важно, чтобы вы резервное копирование базы данных , особенно если вы работаете на производственном сервере (активно используемом сервере). Любые изменения, которые вы вносите в свою базу данных или сервер, на котором она размещена, могут привести к серьезной потере данных, если что-то пойдет не так.
Вы также можете обнаружить, что изменения в соединениях вашего сервера могут помешать вам получить к нему доступ впоследствии. В этом случае вам может потребоваться проконсультироваться с администратором сервера для получения дополнительной поддержки. Хорошая идея-протестировать любые изменения на локальном сервере MySQL, чтобы проверить, работают ли ваши изменения, прежде чем пробовать их удаленно.
Также вероятно, что если вы вносите изменения на удаленный сервер, вы: Вам понадобится безопасный способ подключения и внесения изменений. SSH (Secure Shell) часто является лучшим способом сделать это, поскольку он позволяет подключаться к удаленному серверу. Вы также можете использовать SSH для подключения к серверам в вашей локальной сети, таким как размещено на Raspberry Pi .
Это руководство проведет вас через шаги по настройке MySQL для разрешения удаленных подключений, но вам необходимо сначала убедиться, что у вас есть прямой или удаленный доступ к серверу, на котором размещен ваш сервер MySQL.
Предположим, у вас нет удаленного доступа к вашему серверу через SSH (например). В этом случае вы не сможете настроить свою базу данных MySQL для разрешения удаленных подключений напрямую, если только ваша учетная запись root mySQL уже не разрешает удаленные подключения. Итак, вам необходимо сначала установить это соединение, прежде чем вы сможете продолжить.
Первый шаг в настройке MySQL, позволяющий удаленно Connections заключается в редактировании файла конфигурации MySQL. На этом этапе в этом руководстве предполагается, что вы уже подключились к серверу, ПК или Mac, на котором удаленно размещена ваша база данных mySQL, и имеете доступ к консоли.
Кроме того, вы можете настроить локальный сервер MySQL с помощью открытого терминала на Mac или Linux или текстового редактора в Windows.
Для начала используйте предпочитаемый консольный текстовый редактор для редактирования файла базы данных MySQL.. В Linux введите sudo nano/etc/mysql/mysql.conf.d/mysqld.cnf в терминал или окно SSH, чтобы отредактировать этот файл с помощью редактора nano (при условии ваша база данных MySQL находится в местоположении по умолчанию) . Если вы работаете в Windows, откройте проводник. и войдите в папку, содержащую вашу установку MySQL (например, C:/Program Files/MySQL/MySQL Server 8.0 ). Откройте файл my.ini с помощью текстового редактора по умолчанию (например, Блокнота), дважды щелкнув запись. Если его там нет, сначала создайте файл .
На Mac откройте окно терминала и введите sudo nano/usr/local/etc/my.cnf . Это файл конфигурации по умолчанию для MySQL, если вы установили MySQL с использованием homebrew .
Указанные выше местоположения являются местоположениями по умолчанию для конфигурации MySQL. файлы. Если эти команды не работают, вам нужно будет найти соответствующие файлы ( my.cnf , mysqld.cnf или my.ini ) вручную, чтобы найти соответствующий путь к файлу.
Установка диапазона IP-адресов безопасного связывания
Если вы не уверены в правильном имени службы в Windows, введите net start , чтобы найти его. Если вы не можете перезагрузить конфигурацию, перезапустите сервер и перезагрузите MySQL вручную (при необходимости).
Подключение к удаленному серверу с помощью MySQL
После настройки базы данных MySQL для разрешения удаленных подключений вам нужно будет установить с ней соединение. Вы можете сделать это с помощью команды mysql ( mysql.exe в Windows) из терминала или окна PowerShell.
Если вы используете Windows, перед началом работы убедитесь, что MySQL установлен локально . Пользователи Mac могут установить MySQL с помощью homebrew из терминала ( brew install mysql ), а пользователи Linux могут использовать свой локальный репозиторий приложений (например, sudo apt install mysql ) для установки необходимых пакетов.
Подключение к MySQL в Linux или Mac
Подключение к MySQL в Windows
Если это не сработает, подключитесь к серверу или ПК, на котором размещен ваш сервер MySQL, с помощью SSH. (или получить к нему доступ напрямую), выполнив следующие действия и используя аргумент -h localhost . Затем вы можете создать подходящую учетную запись пользователя, выполнив следующие действия.
Защита вашей базы данных Данные
Независимо от того, работаете ли вы с MySQL или с другим типом базы данных SQL, важно обеспечить безопасность ваших подключений, чтобы обеспечить безопасность данных. Хороший способ сделать это- генерировать SSH-ключи для удаленного доступа к вашему серверу, вместо того, чтобы полагаться на устаревшие (и легко угадываемые) пароли.
Если вы беспокоитесь о потере данных, вы можете легко сделайте резервную копию своей базы данных в Интернете. Большинство баз данных работают с использованием серверов Linux-вы можете легко автоматизировать резервное копирование файлов Linux . Если вы используете MySQL в Windows, вы можете настроить аналогичный система автоматического резервного копирования для Windows , позволяющая восстановить данные в экстренной ситуации.
Разрешить удаленный доступ root пошаговые инструкции
ПРИМЕЧАНИЕ
Даже после настройки MySQL для разрешения удаленных подключений к учетной записи root вам все равно необходимо разрешить подключения к MySQL через брандмауэр Linux и убедитесь, что MySQL привязан к доступному интерфейс. Если вы еще не настроили эти аспекты, сначала ознакомьтесь с нашим руководством по MySQL: разрешить удаленные подключения а потом вернуться.
- Чтобы разрешить удаленные подключения к учетной записи root в MySQL, вы должны выполнить команду
mysql_secure_installation
команда. Обычно вы запускаете эту команду при первой настройке MySQL, но ее можно запустить снова в любой момент, если вам нужно сбросить пароль учетной записи root или разрешить удаленные подключения к учетной записи.$ судо mysql_secure_installation.
- Следуйте подсказкам, пока не дойдете до того, который спрашивает
Запретить удаленный вход в систему root?
и в этом приглашении просто введитенет
. - После того, как вы закончите выполнять остальные запросы, вы сможете получить доступ к своему серверу MySQL из удаленных систем, используя учетную запись root. Конечно, это предполагает, что ваш брандмауэр настроен правильно и ваш сервер MySQL (порт 3306 по умолчанию) уже доступен через Интернет.
- Если это не работает для вас, вы можете попробовать отредактировать
mysql.user
запись для root напрямую.mysql> ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ НА *.* 'root'@'localhost'; mysql> ОБНОВЛЕНИЕ mysql.user SET host='%' WHERE user='root';
Затем перезапустите MySQL:
$ sudo systemctl перезапустить mysql.
Как установить, изменить и восстановить пароль root MySQL
Существует высокая вероятность того, что у вас уже есть MySQL, работающий где-то еще в вашей базе данных. В этом случае может наступить время, когда вам придется изменить или установить пароль пользователя root. Это может быть в результате того, что вы забыли пароль root или просто хотели укрепить свой пароль.
Этот процесс выполняется через командную строку и работает с установками MySQL или MariaDB. И хорошо, пока у вас есть доступ администратора, используя синтаксис sudo или su, используемый вами дистрибутив Linux не имеет значения, поскольку процесс аналогичен.
Обратите внимание: в ИТ-среде было совершено множество атак, поэтому требовались очень надежные пароли, которые я настоятельно рекомендую для ваших баз данных. Вы можете попробовать бессистемный генератор паролей, а затем сохранить пароль с помощью менеджера паролей.
Установка пароля в первый раз
Обычно во время , вам необходимо установить начальный пароль. Однако, если этого не было сделано при установке и настройке MySQL, вам сначала нужно будет установить пароль. Вот как это сделать:
- Сначала откройте окно терминала.
- После запуска терминала вставьте и выполните эту команду:
mysqladmin -u пароль root Fosslinux
Где Fosslinux — это пароль, который вы будете использовать с этого момента, это означает, что каждый раз, когда вы входите в MySQL с помощью команды mysql -u корень -p, вам нужно будет ввести пароль, который мы только что настроили.
В качестве альтернативы вы можете использовать следующий метод для установки пароля root в первый раз. Используйте команду ниже:
mysql_secure_installation

Эта команда установит пароль пользователя root и позволит вам избавиться от анонимных пользователей и тестовой базы данных. Кроме того, он также запретит удаленный вход в систему с правами root. Это, в свою очередь, дополнительно гарантирует вам конкретную безопасность вашей базы данных MySQL.
После установки пароля root MySQL в первый раз пора узнать, как его изменить.
Изменение пароля пользователя root MySQL
Чтобы изменить пароль root MySQL, выполните шаги, указанные здесь:
- Сначала создайте новый файл, используя следующую команду:
ALTER USER 'root' @ 'localhost' ОПРЕДЕЛЕННЫЙ 'Fosslinux $ 11';

Где Fosslinux $ 11 — это новый пароль, который будет использоваться. Не забудьте удовлетворить текущую политику паролей, комбинируя прописные, строчные, числовые и специальные символы.
Сохраните файл как ~ / mysql-pwd
- Затем остановите демон MySQL, используя следующую команду:
sudo systemctl остановить mysql

- Теперь, когда демон остановлен, введите и выполните следующую команду на своем терминале:
Судо mysqld -init-file = ~ / mysql-pwd

- Как только командная строка завершит выполнение указанной выше команды, продолжите и перезапустите демон MySQL, используя следующую команду:
sudo systemctl запустить mysql

- На этом этапе вы должны иметь возможность войти в командную строку MySQL, используя только что установленный пароль администратора, выполнив команду ниже:
mysql -u корень -p
Когда появится запрос, введите созданный вами пароль администратора, и все будет готово.

Теперь, когда мы плодотворно узнали, как изменить только что созданный пароль root MySQL, пришло время узнать, как восстановить забытый или утерянный пароль root MySQL.
Заключительные мысли
В этом руководстве мы увидели, как разрешить удаленный доступ к учетной записи root в MySQL. Это простая настройка для настройки внутри mysql_secure_installation
подсказки, которые рекомендуется выполнять всем при первоначальной установке сервера MySQL в Linux.
LinuxConfig ищет технического писателя (писателей), ориентированного на технологии GNU/Linux и FLOSS. В ваших статьях будут представлены различные руководства по настройке GNU/Linux и технологии FLOSS, используемые в сочетании с операционной системой GNU/Linux.
Ожидается, что при написании ваших статей вы сможете идти в ногу с технологическим прогрессом в вышеупомянутой технической области знаний. Вы будете работать самостоятельно и сможете выпускать не менее 2 технических статей в месяц.
Восстановите свой пароль MySQL
Что ж, допустим, вы забыли свой пароль пользователя root в MySQL и вам отчаянно нужно его восстановить. Все, что вам нужно сделать, это выполнить шаги, упомянутые здесь:
1. Остановите процесс сервера MySQL с помощью команды:
служба sudo mysql stop

2. Запустите сервер MySQL, используя следующую команду:
sudo mysqld_safe --skip-grant-tables --skip-network &
3. Подключитесь к серверу MySQL как пользователь root, используя команду:
mysql -u корень
Вам потребуется выполнить следующие команды MySQL, чтобы сбросить пароль root после выполнения шагов, упомянутых выше:
mysql> используйте mysql; mysql> обновить набор пользователей authentication_string = password ('NEWPASSWORD'), где user = 'root'; mysql> очистить привилегии; mysql> выйти
Примечание. Не забывайте, что НОВЫЙ ПАРОЛЬ относится к новому паролю, который вы будете использовать для входа в систему как пользователь root.
После того, как вы закончите выполнение всех команд, упомянутых выше, продолжите и перезапустите демон MySQL, используя эту команду:
перезапуск службы sudo mysql

Это все. Мы полагаем, что теперь вы можете установить, сбросить и восстановить свой пароль root MySQL.
Ключевой момент, на который следует обратить внимание: Не забудьте установить очень надежный пароль для пользователя root MySQL. Пароль, который сложно взломать. Это повысит безопасность ваших баз данных. Как вы уже знаете, в базах данных хранятся очень конфиденциальные данные, поэтому меньше всего вам нужно, чтобы кто-либо имел доступ к вашей информации без вашего согласия. Настоятельно рекомендуется использовать длинные пароли и пароли, которые сложно запомнить и угадать. Если вы используете генератор паролей для создания пароля, не забудьте сохранить его в хранилище паролей.
Как решить ошибку MySQL: доступ запрещен для пользователя root @ localhost
Это сообщение об ошибке обычно появляется для новых установок MySQL, когда вы пытаетесь подключиться к MySQL от имени пользователя root.
Вот как быстро разрешить доступ, запрещенный для пользователя root на localhost. Описанные шаги можно использовать как для MySQL, так и для MariaDB. Вам не нужно вносить изменения в какие-либо таблицы или выполнять какие-либо сложные конфигурации.
Как мы уже видели в этой статье, когда вы устанавливаете MySQL и хотите получить к нему доступ на локальном компьютере с пользователем root, вы используете следующую команду:
mysql -u корень -p
sudo mysql
Затем введите свой пароль в приглашении. Оболочка MySQL загрузится.

ALTER USER 'root' @ 'localhost' ИДЕНТИФИЦИРОВАН mysql_native_password ПО 'insert_password';
В целях обучения я изменю пароль на «Fosslinux», как показано в командной строке и выводе ниже:
ALTER USER 'root' @ 'localhost' ИДЕНТИФИЦИРОВАН mysql_native_password ПО 'Fosslinux';

Приведенная выше командная строка изменяет пароль для пользователя root и устанавливает метод аутентификации на mysql_native_password. Это традиционный способ аутентификации. К сожалению, в большинстве случаев указанная выше ошибка возникает из-за того, что используемый режим аутентификации auth_plugin что небезопасно, отсюда и ошибка.
Примечание: При вводе желаемого пароля убедитесь, что он соответствует правилам, установленным для пароля, сочетая заглавные и строчные буквы плюс цифры, если вы собираетесь ввести более надежный пароль.
перезапуск службы sudo mysql

На этом этапе вы можете снова попытаться получить доступ к MySQL с правами root. В терминале введите:
mysql -u корень -p

Настройка брандмауэров
Большинство серверов и компьютеров используют брандмауэр для блокировки соединений, если не предоставляется доступ к определенному порту. Действия по настройке зависят от того, используете ли вы MySQL в Windows или Linux. Брандмауэры Mac по умолчанию отключены, поэтому вам не нужно выполнять здесь никаких дополнительных действий.
Настроить брандмауэры Linux
Многие серверы Linux используют iptables в качестве служебной программы межсетевого экрана по умолчанию. Вы можете настроить его, выполнив следующие действия.
Если iptables не является инструментом брандмауэра по умолчанию для вашего дистрибутива Linux, вам необходимо обратитесь к руководству пользователя вашего дистрибутива для получения дополнительной информации. Если определенные пакеты (например, netfilter-persistent ) недоступны, используйте инструмент репозитория программного обеспечения вашего дистрибутива для их установки (например, sudo apt install netfilter-persistent ).
Настройте брандмауэры Windows
Если вы используете ПК или сервер Windows для размещения своей базы данных, вы можете настроить брандмауэр, выполнив следующие действия:
Правильно-щелкните меню «Пуск» и выберите Выполнить . В поле Выполнить введите wf.msc и выберите ОК .
В окне Защитник Windows выберите Правила для входящих > Новое правило .
В окне Мастер создания правила для входящего трафика выберите Порт > Далее .
В следующем меню выберите TCP . из вариантов введите 3306 (или любое другое значение порта, указанное в вашем файле конфигурации MySQL), затем нажмите Далее .
В меню Действие оставьте параметр по умолчанию Разрешить соединение включен, затем нажмите Далее .
Подтвердите, что вы хотите, чтобы правило применялось ко всем типам сетей, затем выберите Далее .
Введите описательное имя для правила (например, MySQL ) в предоставленном порту, затем выберите Готово , чтобы добавить его в список правил брандмауэра.
Если у вас возникли проблемы с подключением, повторите эти шаги выше, убедившись, что вы создали новое исходящее правило в настройках брандмауэра с использованием тех же данных (порт 3306 и т. д.). Вам также может потребоваться настроить маршрутизатор локальной сети, чтобы открывал необходимые заблокированные порты , чтобы разрешить входящие и исходящие соединения с вашей базой данных.
Разрешение удаленного доступа пользователей к базе данных MySQL
К этому моменту вы должны быть возможность удаленно подключиться к вашему серверу MySQL, используя учетную запись пользователя root вашего сервера или другую учетную запись пользователя с повышенными привилегиями. Поскольку этот уровень доступа небезопасен, вы можете предпочесть создать более ограниченную учетную запись для доступа к вашей базе данных MySQL.
У этой учетной записи будет ограниченный доступ к вашему серверу MySQL, что позволит ей взаимодействовать только с выбранными базами данных. Он не сможет вносить более серьезные изменения, такие как доступ к другим данным базы данных, создание новых учетных записей пользователей и т. Д.
Вам потребуется возможность удаленного входа на сервер MySQL. Если вы не можете использовать свою учетную запись root удаленно, вам необходимо получить доступ к оболочке вашего сервера с помощью команды mysql через удаленное соединение SSH или путем прямого доступа к ПК или серверу, на котором размещен сервер.
Заключение
В статье подробно описаны шаги по настройке, изменению и восстановлению пароля root MySQL, а также первой установке пароля root. Обязательно соблюдайте все процессы, описанные в этой статье, чтобы избежать нарушений безопасности с помощью надежных комбинаций паролей. Надеемся, статья будет полезной. Если да, поставьте отметку «Нравится» в разделе комментариев.