java.sql.SQLException: доступ запрещен для пользователя 'guacamole'@'172.17.0.4' в Guacamole Docker

Я новичок в гуакамоле, а также в докере. Я использую mysql для аутентификации.

Команды, которые я пытаюсь, упомянуты ниже

docker run --name some-guacd -d guacamole/guacd
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
docker run --name some-guacamole --link some-guacd:guacd --link some-mysql:mysql -e MYSQL_DATABASE=guacamole -e MYSQL_USER=guacamole -e MYSQL_PASSWORD=some_password -e MYSQL_ROOT_PASSWORD=root -v /local/path:/etc/guacamole -e GUACAMOLE_HOME=/etc/guacamole -d -p 8080:8080 guacamole/guacamole

но я получаю ниже предоставленное исключение.

Fri Mar 22 07:59:36 UTC 2019 WARN: Establishing SSL connection without 
server's identity verification is not recommended. According to MySQL 
5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established 
by default if explicit option isn't set. For compliance with existing 
applications not using SSL the verifyServerCertificate property is set to 
'false'. You need either to explicitly disable SSL by setting useSSL=false, 
or set useSSL=true and provide truststore for server certificate 
verification.
Fri Mar 22 07:59:36 UTC 2019 WARN: Establishing SSL connection without 
server's identity verification is not recommended. According to MySQL 
5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established 
by default if explicit option isn't set. For compliance with existing 
applications not using SSL the verifyServerCertificate property is set to 
'false'. You need either to explicitly disable SSL by setting useSSL=false, 
or set useSSL=true and provide truststore for server certificate 
verification.
07:59:36.126 [http-nio-8080-exec-7] ERROR o.a.g.rest.RESTExceptionMapper - 
Unexpected internal error:
### Error querying database.  Cause: java.sql.SQLException: Access denied 
for user 'guacamole'@'172.17.0.4' (using password: YES)
### The error may exist in 
org/apache/guacamole/auth/jdbc/user/UserMapper.xml
### The error may involve 
org.apache.guacamole.auth.jdbc.user.UserMapper.selectOne
### The error occurred while executing a query
### Cause: java.sql.SQLException: Access denied for user 
'guacamole'@'172.17.0.4' (using password: YES)

И мой гуакамоле.свойства

guacd-hostname:localhost
guacd-port:4822
lib-directory:/var/lib/guacamole/classpath

#basic-user-mapping:/etc/guacamole/user-mapping.xml
#auth-provider: 
net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvide
auth-   
provider:net.sourceforge.guacamole.net.auth.mysql
.MySQLAuthenticationProvider
mysql-hostname:127.0.0.1
mysql-port:3306
mysql-database:guacamole
mysql-username:guacamole
mysql-password:some_password

Я не уверен, где я делаю неправильно?


person Sritam Jagadev    schedule 22.03.2019    source источник


Ответы (1)


В гуакамоле нет переменной окружения MYSQL_ROOT_PASSWORD, как в контейнере MySQL. Вместо этого вы указываете имя пользователя и пароль для подключения. Самый простой способ заставить контейнеры работать друг с другом:

docker run --name some-guacd -d guacamole/guacd
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=guacamole -d mysql:latest
docker run --name some-guacamole --link some-guacd:guacd --link some-mysql:mysql -e MYSQL_DATABASE=guacamole -e MYSQL_USER=root -e MYSQL_PASSWORD=root -v /local/path:/etc/guacamole -e GUACAMOLE_HOME=/etc/guacamole -d -p 8080:8080 guacamole/guacamole

Я удалил переменную MYSQL_ROOT_PASSWORD и обновил другие переменные среды, чтобы отразить вашу конфигурацию MySQL. Я также обновил переменные среды контейнера MySQL, чтобы создать базу данных, в которую вы хотите вводить данные гуакамоле.

Обратите внимание на одну важную вещь: запускать Guacamole с пользователем root MySQL небезопасно. Я бы порекомендовал создать нового пользователя базы данных для запуска гуакамоле и предоставить ему соответствующие разрешения для базы данных.

person nh_99    schedule 22.03.2019