java.sql.SQLException: доступ запрещен для пользователя 'guacamole'@'172.17.0.4' в Guacamole Docker - PullRequest
0 голосов
/ 22 марта 2019

Я новичок в гуакамоле, а также докер.Я использую 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)

И мой guacamole.properties

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

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

1 Ответ

0 голосов
/ 22 марта 2019

У гуакамоле нет переменной окружения 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, чтобы создать базу данных, в которую вы хотите поместить данные гуакамоле.

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

...