База данных Mysql8.0 не может быть подключена удаленно (метод настройки удаленного подключения MySQL) 'root'@'localhost' и 'root'@'%' (mysql не может быть подключена удаленно, соединение MySQL отклонено)

шаг

1. Проверьте статус работы службы MySQL.

На сервере Ubuntu используйте systemctl status mysqlкоманду, чтобы проверить, работает ли MySQL.

Как показано на рисунке, он работает:
Вставьте сюда описание изображения

2. Подтвердите IP-адрес и порт, который прослушивает MySQL.

Используйте sudo netstat -plnt | grep mysql, чтобы узнать, прослушивает ли MySQL все сетевые интерфейсы (0.0.0.0) или только локальный интерфейс обратной связи (127.0.0.1). Если он прослушивает только 127.0.0.1, вам необходимо изменить файл конфигурации MySQL, чтобы он мог принимать соединения от других интерфейсов. Обычно там, где находится этот файл конфигурации /etc/mysql/mysql.conf.d/mysqld.cnf, найдите bind-addressэту запись и измените ее на 0.0.0.0. Затем перезапустите службу MySQL: sudo systemctl restart mysql.

Как показано на рисунке, необходимо убедиться в том, что 0.0.0.0:
Вставьте сюда описание изображения

3. Подтвердите настройки брандмауэра.

Запустите на сервере Ubuntu sudo ufw status, чтобы просмотреть состояние брандмауэра. Если брандмауэр включен, а порт 3306 (порт MySQL по умолчанию) запрещен, вам необходимо добавить правило, разрешающее этот порт. Этого можно добиться с помощью sudo ufw allow 3306команд.

Как показано на рисунке, брандмауэр показан закрытым. Это определенно не брандмауэр, блокирующий порт 3306:
Вставьте сюда описание изображения

4. Проверьте права пользователя MySQL.

Убедитесь, что у пользователя root есть разрешение на вход в систему с не-локального хоста. Вы можете войти в MySQL и использовать эту команду SQL для просмотра прав пользователя: сначала войдите в систему mysql -u root -p, затем переключитесь на базу данных mysql use mysql;и просмотрите SELECT User, Host FROM mysql.user;. Если поле хоста пользователя root — localhost, вам необходимо изменить разрешения, чтобы пользователь root мог войти в систему с любого хоста.

Как показано на рисунке, поле хоста пользователя root — localhost, что не соответствует требованиям:
Вставьте сюда описание изображения

Давайте изменим это:

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

  1. Создайте пользователя root, который позволит входить в систему с любого хоста:

    CREATE USER 'root'@'%' IDENTIFIED BY '123';
    

    Примечание. Указанный выше пароль недопустим, поскольку он слишком простой. Используйте более сложный пароль, например:

    CREATE USER 'root'@'%' IDENTIFIED BY 'YourNewComplexPassword';
    

    (Я использую Цин************123)

    Кроме того, если вы хотите изменить свой пароль, вы можете использовать:

    ALTER USER 'root'@'%' IDENTIFIED BY 'YourNewComplexPassword';
    
  2. Предоставьте новому пользователю все разрешения:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
    

    Вставьте сюда описание изображения

  3. Разрешения на обновление (кажется, работает без обновления):

    FLUSH PRIVILEGES;
    

    Вставьте сюда описание изображения

    Просмотр Просмотр разрешений пользователя:
    Вставьте сюда описание изображения

    'root'@'%'Это нормально , что есть еще один .

    В MySQL идентификатор пользователя состоит из имени пользователя и имени хоста, поэтому ' root'@'localhost'и - 'root'@'%'это две разные учетные записи.
    'root'@'localhost'Указывает, что вы можете подключиться к MySQL только локально.
    'root'@'%'Указывает, что вы можете подключиться к MySQL с любого удаленного хоста.
    Новый пользователь 'root'@'%' успешно создан. Это означает, что пользователь root теперь может подключиться к серверу MySQL с любого хоста, включая ваш компьютер с Windows.
    Между тем, 'root'@'localhost' все еще присутствует, что позволяет подключаться только локально с сервера Ubuntu. Такая конфигурация обычно выполняется для повышения безопасности, поскольку localhost часто используется для внутренних операций системы, таких как задачи обслуживания и резервного копирования.
    Если вы хотите удалить пользователя 'root'@'localhost', вы можете использовать DROP USER 'root'@'localhost';эту команду, но прежде чем делать это, убедитесь, что 'root'@'%' работает правильно и что пользователь 'root'@'localhost' не нужен. .

Примечание. Разрешение пользователю root удаленного входа в систему с любого хоста может представлять угрозу безопасности, поэтому в производственной среде мы обычно создаем нового пользователя с необходимыми разрешениями для удаленного доступа.

5. Проверьте сетевое подключение на компьютере с Windows.

На вашем компьютере с Windows используйте ping 192.168.200.212команду, чтобы подтвердить, что ваш компьютер может подключиться к серверу Ubuntu (измените его на свой собственный IP-адрес хоста MySQL). Затем вы можете использовать telnet или аналогичный инструмент, чтобы проверить, можете ли вы подключиться к порту MySQL сервера, например telnet 192.168.200.212 3306.

Обычно он отображает:
Вставьте сюда описание изображения

6. Проверьте конфигурацию Datagrip.

Убедитесь, что подключение к базе данных в Datagrip настроено правильно. Укажите IP-адрес, порт, имя пользователя и пароль.

Выполнив описанные выше действия, вы сможете выявить проблему и устранить ее. Если у вас все еще есть проблемы, вам может потребоваться проверить более подробную информацию журнала, например журнал ошибок MySQL, обычно расположенный по адресу /var/log/mysql/error.log.

После того, как все вышеперечисленные шаги будут проверены и правильно настроены, вы сможете получить удаленный доступ

Я использовал datagrip и нажал Test Connection, и это показало, что соединение установлено успешно:

Вставьте сюда описание изображения

Guess you like

Origin blog.csdn.net/Dontla/article/details/133213538