Я в курсе этой команды:
GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'yourremotehost'
IDENTIFIED BY 'newpassword';
Но тогда это только позволяет мне предоставить определенный IP-адрес для доступа к этой удаленной базе данных MySQL. Что если я хочу, чтобы любой удаленный хост мог получить доступ к этой базе данных MySQL? Как я могу это сделать? По сути, я делаю эту базу данных общедоступной, чтобы каждый мог получить к ней доступ.
Ответы:
% является подстановочным знаком - вы также можете сделать
'%.domain.com'
или'%.123.123.123'
и тому подобное, если вам нужно.источник
-h my_machine_name
параметра. Это обманывает клиента, чтобы идентифицировать вас как'user'@my_machine_name.example.com
, а не'user'@localhost
. Таким образом, вам не нужно создавать и поддерживать двойные учетные записи и гранты дляlocalhost
доступа к сети и для обоих . И, конечно же , быть уверенmysqld
связан0.0.0.0
против127.0.0.1
.Включить удаленный доступ (предоставление) Домой / Учебники / Mysql / Включить удаленный доступ (предоставление) Если вы попытаетесь подключиться к серверу mysql с удаленного компьютера и столкнетесь с ошибкой, как показано ниже, эта статья для вас.
Изменить конфиг mysql
Начните с редактирования файла конфигурации mysql
Закомментируйте следующие строки.
Если вы не нашли пропущенную строку, добавьте ее и закомментируйте.
Перезапустите сервер MySQL.
Изменить привилегию GRANT
Вы можете быть удивлены, увидев, что даже после вышеуказанных изменений вы не получаете удаленный доступ или доступ, но не можете использовать все базы данных.
По умолчанию имя пользователя и пароль mysql, которые вы используете, разрешены для локального доступа к mysql-серверу. Так что нужно обновить привилегию.
Запустите команду, как показано ниже, чтобы получить доступ со всех машин. (Замените
USERNAME
иPASSWORD
вашими учетными данными.)Запустите команду как ниже, чтобы дать доступ с определенного IP. (Замените
USERNAME
иPASSWORD
вашими учетными данными.)Вы можете заменить 1.2.3.4 своим IP. Вы можете выполнить указанную выше команду много раз, чтобы получить доступ GRANT с нескольких IP-адресов.
Вы также можете указать отдельный
USERNAME
&PASSWORD
для удаленного доступа.Вы можете проверить окончательный результат по:
Наконец, вам также может понадобиться запустить:
Тестовое соединение
Из терминала / командной строки:
Если вы получили оболочку mysql, не забудьте запустить show database; чтобы проверить, есть ли у вас права с удаленных компьютеров.
Бонус-совет: отозвать доступ
Если вы случайно предоставили доступ пользователю, лучше использовать опцию отзыва.
Далее будут отменены все параметры для USERNAME со всех компьютеров:
Если после запуска команды REVOKE вы видите привилегию USAGE, это нормально. Это так же хорошо, как и никаких привилегий. Я не уверен, что это можно отозвать.
источник
/etc/mysql/mysql.conf.d/mysqld.cnf
файл, а не/etc/mysql/my.cnf
закомментироватьbind-address
часть.#skip-networking
Линия отсутствует , и не должна быть никакого эффекта добавления и комментирования линии./etc/mysql/mariadb.conf.d/50-server.cnf
3306
или какой-либо другой порт, который вы установилиПредполагая, что вышеуказанный шаг завершен, и порт MySql 3306 доступен для удаленного доступа; Не забудьте связать публичный IP-адрес в файле конфигурации mysql.
Например, на моем сервере Ubuntu:
В файле найдите блок раздела [mysqld] и добавьте новый адрес привязки, в данном примере это 192.168.0.116. Это будет выглядеть примерно так
При желании вы можете удалить привязку localhost (127.0.0.1), но затем вам необходимо указать IP-адрес для доступа к серверу на локальной машине.
Затем последний шаг - перезапустить сервер MySql (в Ubuntu).
или
#/etc/init.d/mysql restart
для других системТеперь к базе данных MySQL можно получить удаленный доступ:
источник
/etc/init.d/mysql reload
должно хватитьbind-address
Директива определяет IP - адрес , который MySQL сервер прослушивает; не IP-адреса, с которых сервер принимает соединения.bind-address
адреса localhost или remotehost.mysql.serviceJob for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
Для тех, кто возился с этим, вот как я должен предоставить привилегии, надеюсь, это поможет кому-то
Как уже упоминалось
%
, это подстановочный знак, и это позволит любому IP-адресу подключаться к вашей базе данных. Я предполагаю, что при подключении вы будете иметь имя пользователяroot
(хотя это значение по умолчанию). Введите пароль пользователя root, и все готово. Обратите внимание, что у меня нет одинарных кавычек ('
) вокруг пользователя root.источник
Изменения файла конфигурации необходимы для подключения через локальный хост.
Чтобы подключиться через удаленные IP-адреса, войдите в систему как «пользователь root» и выполните следующие запросы в mysql.
Это создаст нового пользователя, который будет доступен как на локальном хосте, так и с удаленных IP-адресов.
Также прокомментируйте строку ниже из вашего файла my.cnf, расположенного в /etc/mysql/my.cnf
Перезапустите MySQL, используя
Теперь вы должны иметь возможность удаленного подключения к MySQL.
источник
Используйте эту команду:
Затем:
Затем закомментируйте следующую строку в файле "/etc/mysql/mysql.conf.d/mysqld.cnf" (обязательно!):
Работает для меня!
источник
your-password-does-not-satisfy-the-current-policy-requirements
Чтобы иметь возможность подключиться к вашему пользователю с любого IP-адреса, выполните следующие действия:
Разрешить MySQL серверу принимать удаленные подключения. Для этого откройте файл mysqld.conf:
Найдите строку, начинающуюся с «bind-address», и установите для нее значение 0.0.0.0.
и, наконец, сохранить файл.
Примечание: если вы работаете с MySQL 8+,
bind-address
директива не будет вmysqld.cnf
файле по умолчанию. В этом случае добавьте директиву внизу файла/etc/mysql/mysql.conf.d/mysqld.cnf
.Теперь перезапустите сервер mysql с помощью
systemd
или используйте более старуюservice
команду. Это зависит от вашей операционной системы:Наконец, сервер MySQL теперь может принимать удаленные подключения.
Теперь нам нужно создать пользователя и предоставить ему разрешение, чтобы мы могли иметь возможность удаленного входа в систему с этим пользователем.
Подключитесь к базе данных MySQL как пользователь root или любой другой пользователь с привилегиями root.
Теперь создайте нужного пользователя в подстановочных знаках localhost и '%' и предоставьте разрешения для всех БД как таковых.
Затем,
И, наконец, не забудьте сбросить привилегии
Примечание. Если вы настроили брандмауэр на сервере базы данных, вам также потребуется открыть порт
3306
MySQL по умолчанию, чтобы разрешить трафик к MySQL.Надеюсь это поможет ;)
источник
Запустите следующее:
Затем попытайтесь установить соединение с указанного вами IP-адреса:
Вы должны быть в состоянии подключиться.
источник
Вы можете решить проблему MariaDB с помощью этой команды :
Примечание:
%
подстановочный знак В этом случае это относится ко всем IP-адресам.источник
источник
Для удаленного доступа к базе данных Mysql server 8:
источник
Если вы используете экземпляр EC2, не забудьте добавить входящие правила в группу безопасности с помощью MYSQL / Aurura.
источник
Редактировать файл:
/etc/mysql/percona-server.cnf
Добавьте приведенный ниже код в файл.
[mysqld] bind-address = 0.0.0.0
Создать пользователя для удаленного доступа.
Все Linux-сервер работает,
Для MSWin c: \ Найти место инсаталяции \ путь к файлу
источник
Просто создайте пользователя для некоторой базы данных, например
GRANT ALL PRIVILEGES ON <database_name>.* TO '<username>'@'%' IDENTIFIED BY '<password>'
Затем перейдите к
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
и измените строкуbind-address = 127.0.0.1
наbind-address = 0.0.0.0
После этого вы можете подключиться к этой базе данных с любого IP.
источник
Откройте
mysql console
и выполните следующую команду (введите имя базы данных, имя пользователя и пароль):Затем выполните:
Откройте командную строку и откройте файл,
/etc/mysql/mysql.conf.d/mysqld.cnf
используя любой редактор сroot privileges
.Например:
Затем закомментируйте следующую строку:
Перезапустите mysql, чтобы отразить изменения, используя команду:
Наслаждаться ;)
источник
Вам нужно изменить конфигурационный файл mysql:
Начните с редактирования файла конфигурации mysql
Добавить:
источник
На панелях веб-сайтов, таких как cPanel, вы можете добавить один
%
(знак процента) в разрешенные имена хостов для доступа к вашей базе данных MySQL.Добавив один,
%
вы можете получить доступ к вашей базе данных с любого IP или веб-сайта, даже из настольных приложений.источник
Например, в моем CentOS
закомментируйте следующие строки
затем
источник
Если вы хотите предоставить удаленный доступ к вашей базе данных с любого IP-адреса, выполните команду mysql и после этого выполните следующую команду.
источник
то, что работало в Ubuntu, так это предоставление всех привилегий пользователю:
и установить адрес привязки в
/etc/mysql/mysql.conf.d/mysqld.cnf
:затем перезапустить демон MySQL:
источник
Вы можете отключить всю безопасность, отредактировав /etc/my.cnf:
источник