Подтвердить что ты не робот

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

Если я делаю SHOW GRANTS в моей базе данных mysql, я получаю

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' 
    IDENTIFIED BY PASSWORD 'some_characters' 
    WITH GRANT OPTION

Если я не ошибаюсь, [email protected] означает, что пользователь root может обращаться к серверу только с localhost. Как сообщить MySQL предоставить root разрешение на доступ к этому серверу mysql с любого другого компьютера (в той же сети) тоже?

4b9b3361

Ответ 1

Это дает root доступ с тем же паролем с любого компьютера в *.example.com:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%.example.com' 
    IDENTIFIED BY 'some_characters' 
    WITH GRANT OPTION;
FLUSH PRIVILEGES;

Если разрешение имен не будет работать, вы также можете предоставить доступ по IP или подсети:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%'
    IDENTIFIED BY 'some_characters'  
    WITH GRANT OPTION;
FLUSH PRIVILEGES;

MySQL GRANT синтаксические документы

Ответ 2

Try:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Pa55w0rd' WITH GRANT OPTION;

Ответ 3

Вам нужно предпринять несколько шагов, чтобы убедиться, что первый mysql, а затем пользователь root доступен снаружи:

  • Отключить skip-networking в my.cnf (i.e: /etc/mysql/my.cnf)

  • Проверьте значение bind-address в my.cnf, если оно установлено на 127.0.0.1, вы можете изменить его на 0.0.0.0, чтобы разрешить доступ со всех IP-адресов или другого ip, из которого вы хотите подключиться.

  • Предоставьте удаленный доступ к пользователю root из любого ip (или укажите ваш ip вместо %)

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'
        IDENTIFIED BY 'your_root_password'
        WITH GRANT OPTION;
    FLUSH PRIVILEGES;`
    
  • Перезапустите службу mysql:

    sudo service mysql restart
    

Ответ 4

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' 
    IDENTIFIED BY 'YOUR_PASS' 
    WITH GRANT OPTION;
FLUSH PRIVILEGES;  

*.* = DB.TABLE вы можете ограничить пользователя конкретной базой данных и конкретной таблицей.

'root'@'%' вы можете изменить root с любым пользователем, которого вы создали, а% - разрешить весь IP. Вы можете ограничить его, изменив также%.168.1.1 и т.д.

Ответ 5

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

Ответ 6

В моем случае я пытался подключиться к удаленному серверу mysql на cent OS. После прохождения большого количества решений (предоставление всех привилегий, удаление ip-привязок, создание сетей) проблема все еще не решена.

Как оказалось, при просмотре различных решений я столкнулся с iptables, что заставило меня понять, что порт 3306 mysql не принимает соединения.

Вот небольшая заметка о том, как я проверил и разрешил эту проблему.

  • Проверка подключения порта:
telnet (mysql server ip) [portNo]

-дополнение правила таблицы ip, разрешающего подключения к порту:

iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

-Можно не рекомендовать это для рабочей среды, но если ваши iptables настроены неправильно, добавление правил может еще не решить проблему. В этом случае следует сделать следующее:

service iptables stop

Надеюсь, что это поможет.

Ответ 7

Откройте файл /etc/mysql/mysql.conf.d/mysqld.cnf и прокомментируйте следующую строку:

#bind-address = 127.0.0.1

Ответ 8

Это сработало для меня. Но была странная проблема, что даже я пробовал сначала те, на которые это не повлияло. Я обновил страницу phpmyadmin и получил ее как-то работать.

Если вам нужен доступ к local-xampp-mysql. Вы можете перейти к командной строке xampp-shell → .

Затем mysql -uroot -p --port = 3306 или mysql -uroot -p (если установлен пароль). После этого вы можете предоставить эти acces с страницы оболочки mysql (также может работать с localhost/phpmyadmin).

Просто добавьте их, если кто-нибудь найдет эту тему и начнет проблемы с новичком.

Ответ 9

Два шага:

  • настроить пользователя с помощью шаблона:
    create user 'root'@'%' identified by 'some_characters'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD 'some_characters' WITH GRANT OPTION

  • vim /etc/my.cnf
    добавьте следующее:
    bind-address=0.0.0.0

перезагрузите сервер, у вас не должно возникнуть никаких проблем с подключением к нему.