MySQL JDBC может подключаться только через TCP / IP (в Unix, TCP / IP или именованный канал в Windows).
Драйвер MySQL JDBC не может установить соединение с использованием локального сокета Unix.
При использовании MySQL в Unix localhost
имеет другое значение, которое мы можем ожидать.Это не синоним имени хоста для петлевого адреса TCP / IP 127.0.0.1.В Unix пользователь MySQL
'user1'@'localhost'
указывает пользователя, который может подключаться только через файл сокетов Unix;Невозможно подключиться к этому пользователю через TCP / IP.
Выше объясняется, почему MySQL отказывает в соединении от JDBC: попытка соединения не удалась, потому что соответствующего пользователя не существует.
Чтобы создать пользователя MySQL, который подключается с петлевого адреса TCP / IP, предполагая, что MySQL запущен с --skip-name-resolve
и без --skip-networking
, мы можем указать пользователя как:
'user'@'127.0.0.1'
Этот пользователь разрешитсоединение от JDBC.
(Если разрешено разрешение имен MySQL DNS, нам нужно будет использовать имя хоста, которое разрешается в адрес обратной петли; или мы можем рассмотреть возможность использования подстановочного знака «%» для части имени хостапользователь.) * * тысяча двадцать-один