#java #mysql #docker #guacamole
#java #mysql #docker #гуакамоле
Вопрос:
Я новичок в гуакамоле так же, как и в 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)
И мой 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:
У Guacamole нет 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 с корневым пользователем MySQL. Я бы рекомендовал создать нового пользователя базы данных для запуска Guacamole под именем и предоставить ему соответствующие разрешения для базы данных.