You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@guacamole.apache.org by "André R. Basel" <an...@basel.co.nz> on 2023/04/27 08:44:47 UTC

Re: R: R: Quacamole docker install (SOLVED)

Hi Maurizi

Thanks so much for your help. I got it working with your help.

For the sake of completeness, this is what I did:

The IP of my docker server is 192.168.1.11

Step 1: sudo docker run --name my-guacd -d guacamole/guacd

Step 2: sudo docker run --name my-guacamole --link my-guacd:guacd -d -p 8080:8080 --restart unless-stopped guacamole/guacamole

Step 3: sudo docker run --name quacamole-mysql -e MYSQL_ROOT_PASSWORD=sqlpwd! -d --restart unless-stopped mysql:latest

Step 4:
sudo docker exec -it guacamole-mysql /bin/bash

mysql -u root -p

CREATE DATABASE guacamole_db;
CREATE USER 'guacamole_user'@'%' IDENTIFIED BY 'pwd1';
GRANT ALL PRIVILEGES ON guacamole_db.* TO 'guacamole_user'@'%';
FLUSH PRIVILEGES;

sudo cat initdb.sql | sudo docker exec -i guacamole-mysql /usr/bin/mysql -u guacamole_user -ppwd1 -D guacamole_db

Step 5:

sudo docker run --name my-guacamole \
--link my-guacd:guacd \
--link guacamole-mysql:mysql \
-e MYSQL_HOSTNAME=192.168.1.11 \
-e MYSQL_DATABASE=guacamole_db \
-e MYSQL_USER=guacamole_user \
-e MYSQL_PASSWORD=pwd1 \
--restart unless-stopped \
-d -p 8080:8080 guacamole/guacamole

sudo docker logs my-guacamole

The only step I am not sure about is the below i.e. does the 'cat' line above replace this or do I need to run this before the 'cat' statement. The reason I ask is that I had originally run it and so not sure if it is actually necessary.// Step ?: sudo docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql

André Basel
027 640 2527

Sent with [Proton Mail](https://proton.me/) secure email.

------- Original Message -------
On Thursday, April 27th, 2023 at 20:28, MAURIZI Lorenzo <l....@comune.jesi.an.it> wrote:

> Hello André
>
> Please note that when using –p option in mysql command, the password should be put without any spaces after “p”,
>
> so in this case:
>
> sudo cat initdb.sql | sudo docker exec -i guacamole-mysql /usr/bin/mysql -u guacamole_user -prjgtpormdsl837dejkl_kl@ -D guacamole_db
>
> Regards.
>
> Lorenzo
>
> Da: André R. Basel <an...@basel.co.nz>
> Inviato: giovedì 27 aprile 2023 10:08
> A: user@guacamole.apache.org
> Oggetto: Re: R: Quacamole docker install
>
> Found a syntax error so when I fixed that I got
>
> sysadmin@services:~$ sudo cat initdb.sql | sudo docker exec -i guacamole-mysql /usr/bin/mysql -u guacamole_user -p rjgtpormdsl837dejkl_kl@ -D guacamole_db
>
> Enter password: ERROR 1045 (28000): Access denied for user 'guacamole_user'@'localhost' (using password: YES)
>
> Will fix access and then try again
>
> André Basel
> 027 640 2527
>
> Sent with [Proton Mail](https://proton.me/) secure email.
>
> ------- Original Message -------
> On Thursday, April 27th, 2023 at 20:00, André R. Basel <an...@basel.co.nz> wrote:
>
>> Thanks Lorenzo
>>
>> I think I might be close now.
>>
>> I created Step 3B:
>>
>> Step 3b:
>>
>> CREATE USER 'guacamole_user'@'localhost' IDENTIFIED BY 'dbuserpwd';
>>
>> GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
>>
>> FLUSH PRIVILEGES
>>
>> sudo cat initdb.sql | sudo docker exec -i quacamole-mysql /usr/bin/mysql -u guacamole_user -p mypassword guacamole_db
>>
>> I ran the above but it did not work, instead a usage details showed eg
>>
>> sysadmin@services:~$ sudo cat initdb.sql | sudo docker exec -i guacamole-mysql /usr/bin/mysql -u guacamole_user -p rjgtpormdsl837dejkl_kl@ guacamole_db
>>
>> /usr/bin/mysql Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)
>>
>> Copyright (c) 2000, 2023, Oracle and/or its affiliates.
>>
>> Oracle is a registered trademark of Oracle Corporation and/or its
>>
>> affiliates. Other names may be trademarks of their respective
>>
>> owners.
>>
>> Usage: /usr/bin/mysql [OPTIONS] [database]
>>
>> -?, --help Display this help and exit.
>>
>> -I, --help Synonym for -?
>>
>> --auto-rehash Enable automatic rehashing. One doesn't need to use
>>
>> 'rehash' to get table and field completion, but startup
>>
>> and reconnecting may take a longer time. Disable with
>>
>> --disable-auto-rehash.
>>
>> (Defaults to on; use --skip-auto-rehash to disable.)
>>
>> -A, --no-auto-rehash
>>
>> No automatic rehashing. One has to use 'rehash' to get
>>
>> table and field completion. This gives a quicker start of
>>
>> mysql and disables rehashing on reconnect.
>>
>> --auto-vertical-output
>>
>> Automatically switch to vertical output mode if the
>>
>> result is wider than the terminal width.
>>
>> -B, --batch Don't use history file. Disable interactive behavior.
>>
>> (Enables --silent.)
>>
>> --bind-address=name IP address to bind to.
>>
>> --binary-as-hex Print binary data as hex. Enabled by default for
>>
>> interactive terminals.
>>
>> And there was not tables in the database.
>>
>> Is that line meant to do the same as Step 4: sudo docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql or or something else, or should I be running this before 3B?
>>
>> Kind regards
>>
>> André Basel
>> 027 640 2527
>>
>> Sent with [Proton Mail](https://proton.me/) secure email.
>>
>> ------- Original Message -------
>> On Thursday, April 27th, 2023 at 19:23, MAURIZI Lorenzo <l....@comune.jesi.an.it> wrote:
>>
>>> Hello André,
>>>
>>> in step 4 you are creating on current directory a script to initialize the database, but you don’t mention if you run that script into your mysql instance, to create database structure.
>>>
>>> If not, you are trying to run Guacamole without a database set up.
>>>
>>> Moreover you are missing MYSQL_DATABASE variable in step 5 (see https://guacamole.apache.org/doc/gug/guacamole-docker.html#required-environment-variables)
>>>
>>> So i think you should:
>>>
>>> create a new database into the mysql container.
>>>
>>> For this I would use the mysql command from inside the container, to make it simple, so you should (please note I used your example values, so change them with the real values):
>>>
>>> docker exec –it quacamole-mysql /bin/bash
>>>
>>> then
>>>
>>> mysql –u root –pmypassword!
>>>
>>> Then in mysql prompt you should create the database
>>>
>>> Mysql>CREATE DATABASE guacamole_db;
>>>
>>> Mysql>GRANT ALL PRIVILEGES ON guacamole_db.* TO 'guacamole_user'@'%' IDENTIFIED BY ‘mypassword’;
>>>
>>> After that you can issue “exit” twice to go back to the container bash prompt and then to the server bash prompt outside the mysql container.
>>>
>>> Then you should import the “initdb.sql” script to create database structure:
>>>
>>> cat initdb.sql | docker exec -i quacamole-mysql /usr/bin/mysql -u guacamole_user -pmypassword guacamole_db
>>>
>>> At this point you should have a complete DB for guacamole.
>>>
>>> Then you should start youd guacamole container (step 5) adding this environment variable to the command line:
>>>
>>> -e MYSQL_DATABASE=guacamole_db
>>>
>>> I think you should not get the error now.
>>>
>>> I hope that I didn’t write anything wrong!
>>>
>>> Best regards.
>>>
>>> Lorenzo
>>>
>>> Da: André R. Basel <an...@basel.co.nz>
>>> Inviato: giovedì 27 aprile 2023 07:26
>>> A: user@guacamole.apache.org
>>> Oggetto: Quacamole docker install
>>>
>>> Hi
>>>
>>> I have been working through the documentation to install Quacamole using docker.
>>>
>>> The IP of my docker server is 192.168.1.11
>>>
>>> Base on my understanding of what I read, I did the following:
>>>
>>> Step 1: sudo docker run --name my-guacd -d guacamole/guacd
>>>
>>> Step 2: sudo docker run --name my-guacamole --link my-guacd:guacd -d -p 8080:8080 --restart unless-stopped guacamole/guacamole
>>>
>>> Step 3: sudo docker run --name quacamole-mysql -e MYSQL_ROOT_PASSWORD=mypassword! -d --restart unless-stopped mysql:latest
>>>
>>> Step 4: sudo docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
>>>
>>> Step 5:
>>>
>>> sudo docker run --name my-guacamole \
>>>
>>> --link my-guacd:guacd \
>>>
>>> --link guacamole-mysql:mysql \
>>>
>>> -e MYSQL_HOSTNAME=192.168.1.11 \
>>>
>>> -e MYSQL_USER=guacamole_user \
>>>
>>> -e MYSQL_PASSWORD=mypassword \
>>>
>>> --restart unless-stopped \
>>>
>>> -d -p 8080:8080 guacamole/guacamole
>>>
>>> However when looking at the logs I get
>>>
>>> FATAL: No authentication configured
>>>
>>> -------------------------------------------------------------------------------
>>>
>>> The Guacamole Docker container needs at least one authentication mechanism in
>>>
>>> order to function, such as a MySQL database, PostgreSQL database, SQLServer
>>>
>>> database, LDAP directory or RADIUS server. Please specify at least the
>>>
>>> MYSQL_DATABASE or POSTGRES_DATABASE or SQLSERVER_DATABASE environment variables,
>>>
>>> or check Guacamole's Docker documentation regarding configuring LDAP and/or
>>>
>>> custom extensions.
>>>
>>> My Docker setup looks as follows:
>>>
>>> [image.png]
>>>
>>> I tried following the instructions set the database up but I think I may have got those confused.
>>>
>>> Is there a simplified set of steps to help a NOOB get it up and running, after which I can start playing with the different settings?
>>>
>>> Kind regards
>>>
>>> Andre
>>>
>>> Sent with [Proton Mail](https://proton.me/) secure email.

Re: R: R: R: Quacamole docker install (SOLVED)

Posted by "André R. Basel" <an...@basel.co.nz>.
Perfect, and I also do not need step 2 as I run that at the end.

thanks again

André Basel
027 640 2527

Sent with [Proton Mail](https://proton.me/) secure email.

------- Original Message -------
On Thursday, April 27th, 2023 at 20:58, MAURIZI Lorenzo <l....@comune.jesi.an.it> wrote:

> The only step I am not sure about is the below i.e. does the 'cat' line above replace this or do I need to run this before the 'cat' statement. The reason I ask is that I had originally run it and so not sure if it is actually necessary.
>
> // Step ?: sudo docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
>
> This step is necessary to create the initdb.sql script in mysql “dialect”, that is used by the cat initdb.sql | etc… command.
>
> Regards
>
> Lorenzo
>
> Da: André R. Basel <an...@basel.co.nz>
> Inviato: giovedì 27 aprile 2023 10:45
> A: user@guacamole.apache.org
> Oggetto: Re: R: R: Quacamole docker install (SOLVED)
>
> Hi Maurizi
>
> Thanks so much for your help. I got it working with your help.
>
> For the sake of completeness, this is what I did:
>
> The IP of my docker server is 192.168.1.11
>
> Step 1: sudo docker run --name my-guacd -d guacamole/guacd
>
> Step 2: sudo docker run --name my-guacamole --link my-guacd:guacd -d -p 8080:8080 --restart unless-stopped guacamole/guacamole
>
> Step 3: sudo docker run --name quacamole-mysql -e MYSQL_ROOT_PASSWORD=sqlpwd! -d --restart unless-stopped mysql:latest
>
> Step 4:
>
> sudo docker exec -it guacamole-mysql /bin/bash
>
> mysql -u root -p
>
> CREATE DATABASE guacamole_db;
>
> CREATE USER 'guacamole_user'@'%' IDENTIFIED BY 'pwd1';
>
> GRANT ALL PRIVILEGES ON guacamole_db.* TO 'guacamole_user'@'%';
>
> FLUSH PRIVILEGES;
>
> sudo cat initdb.sql | sudo docker exec -i guacamole-mysql /usr/bin/mysql -u guacamole_user -ppwd1 -D guacamole_db
>
> Step 5:
>
> sudo docker run --name my-guacamole \
>
> --link my-guacd:guacd \
>
> --link guacamole-mysql:mysql \
>
> -e MYSQL_HOSTNAME=192.168.1.11 \
>
> -e MYSQL_DATABASE=guacamole_db \
>
> -e MYSQL_USER=guacamole_user \
>
> -e MYSQL_PASSWORD=pwd1 \
>
> --restart unless-stopped \
>
> -d -p 8080:8080 guacamole/guacamole
>
> sudo docker logs my-guacamole
>
> The only step I am not sure about is the below i.e. does the 'cat' line above replace this or do I need to run this before the 'cat' statement. The reason I ask is that I had originally run it and so not sure if it is actually necessary.
>
> // Step ?: sudo docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
>
> André Basel
> 027 640 2527
>
> Sent with [Proton Mail](https://proton.me/) secure email.
>
> ------- Original Message -------
> On Thursday, April 27th, 2023 at 20:28, MAURIZI Lorenzo <l....@comune.jesi.an.it> wrote:
>
>> Hello André
>>
>> Please note that when using –p option in mysql command, the password should be put without any spaces after “p”,
>>
>> so in this case:
>>
>> sudo cat initdb.sql | sudo docker exec -i guacamole-mysql /usr/bin/mysql -u guacamole_user -prjgtpormdsl837dejkl_kl@ -D guacamole_db
>>
>> Regards.
>>
>> Lorenzo
>>
>> Da: André R. Basel <an...@basel.co.nz>
>> Inviato: giovedì 27 aprile 2023 10:08
>> A: user@guacamole.apache.org
>> Oggetto: Re: R: Quacamole docker install
>>
>> Found a syntax error so when I fixed that I got
>>
>> sysadmin@services:~$ sudo cat initdb.sql | sudo docker exec -i guacamole-mysql /usr/bin/mysql -u guacamole_user -p rjgtpormdsl837dejkl_kl@ -D guacamole_db
>>
>> Enter password: ERROR 1045 (28000): Access denied for user 'guacamole_user'@'localhost' (using password: YES)
>>
>> Will fix access and then try again
>>
>> André Basel
>> 027 640 2527
>>
>> Sent with [Proton Mail](https://proton.me/) secure email.
>>
>> ------- Original Message -------
>> On Thursday, April 27th, 2023 at 20:00, André R. Basel <an...@basel.co.nz> wrote:
>>
>>> Thanks Lorenzo
>>>
>>> I think I might be close now.
>>>
>>> I created Step 3B:
>>>
>>> Step 3b:
>>>
>>> CREATE USER 'guacamole_user'@'localhost' IDENTIFIED BY 'dbuserpwd';
>>>
>>> GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
>>>
>>> FLUSH PRIVILEGES
>>>
>>> sudo cat initdb.sql | sudo docker exec -i quacamole-mysql /usr/bin/mysql -u guacamole_user -p mypassword guacamole_db
>>>
>>> I ran the above but it did not work, instead a usage details showed eg
>>>
>>> sysadmin@services:~$ sudo cat initdb.sql | sudo docker exec -i guacamole-mysql /usr/bin/mysql -u guacamole_user -p rjgtpormdsl837dejkl_kl@ guacamole_db
>>>
>>> /usr/bin/mysql Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)
>>>
>>> Copyright (c) 2000, 2023, Oracle and/or its affiliates.
>>>
>>> Oracle is a registered trademark of Oracle Corporation and/or its
>>>
>>> affiliates. Other names may be trademarks of their respective
>>>
>>> owners.
>>>
>>> Usage: /usr/bin/mysql [OPTIONS] [database]
>>>
>>> -?, --help Display this help and exit.
>>>
>>> -I, --help Synonym for -?
>>>
>>> --auto-rehash Enable automatic rehashing. One doesn't need to use
>>>
>>> 'rehash' to get table and field completion, but startup
>>>
>>> and reconnecting may take a longer time. Disable with
>>>
>>> --disable-auto-rehash.
>>>
>>> (Defaults to on; use --skip-auto-rehash to disable.)
>>>
>>> -A, --no-auto-rehash
>>>
>>> No automatic rehashing. One has to use 'rehash' to get
>>>
>>> table and field completion. This gives a quicker start of
>>>
>>> mysql and disables rehashing on reconnect.
>>>
>>> --auto-vertical-output
>>>
>>> Automatically switch to vertical output mode if the
>>>
>>> result is wider than the terminal width.
>>>
>>> -B, --batch Don't use history file. Disable interactive behavior.
>>>
>>> (Enables --silent.)
>>>
>>> --bind-address=name IP address to bind to.
>>>
>>> --binary-as-hex Print binary data as hex. Enabled by default for
>>>
>>> interactive terminals.
>>>
>>> And there was not tables in the database.
>>>
>>> Is that line meant to do the same as Step 4: sudo docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql or or something else, or should I be running this before 3B?
>>>
>>> Kind regards
>>>
>>> André Basel
>>> 027 640 2527
>>>
>>> Sent with [Proton Mail](https://proton.me/) secure email.
>>>
>>> ------- Original Message -------
>>> On Thursday, April 27th, 2023 at 19:23, MAURIZI Lorenzo <l....@comune.jesi.an.it> wrote:
>>>
>>>> Hello André,
>>>>
>>>> in step 4 you are creating on current directory a script to initialize the database, but you don’t mention if you run that script into your mysql instance, to create database structure.
>>>>
>>>> If not, you are trying to run Guacamole without a database set up.
>>>>
>>>> Moreover you are missing MYSQL_DATABASE variable in step 5 (see https://guacamole.apache.org/doc/gug/guacamole-docker.html#required-environment-variables)
>>>>
>>>> So i think you should:
>>>>
>>>> create a new database into the mysql container.
>>>>
>>>> For this I would use the mysql command from inside the container, to make it simple, so you should (please note I used your example values, so change them with the real values):
>>>>
>>>> docker exec –it quacamole-mysql /bin/bash
>>>>
>>>> then
>>>>
>>>> mysql –u root –pmypassword!
>>>>
>>>> Then in mysql prompt you should create the database
>>>>
>>>> Mysql>CREATE DATABASE guacamole_db;
>>>>
>>>> Mysql>GRANT ALL PRIVILEGES ON guacamole_db.* TO 'guacamole_user'@'%' IDENTIFIED BY ‘mypassword’;
>>>>
>>>> After that you can issue “exit” twice to go back to the container bash prompt and then to the server bash prompt outside the mysql container.
>>>>
>>>> Then you should import the “initdb.sql” script to create database structure:
>>>>
>>>> cat initdb.sql | docker exec -i quacamole-mysql /usr/bin/mysql -u guacamole_user -pmypassword guacamole_db
>>>>
>>>> At this point you should have a complete DB for guacamole.
>>>>
>>>> Then you should start youd guacamole container (step 5) adding this environment variable to the command line:
>>>>
>>>> -e MYSQL_DATABASE=guacamole_db
>>>>
>>>> I think you should not get the error now.
>>>>
>>>> I hope that I didn’t write anything wrong!
>>>>
>>>> Best regards.
>>>>
>>>> Lorenzo
>>>>
>>>> Da: André R. Basel <an...@basel.co.nz>
>>>> Inviato: giovedì 27 aprile 2023 07:26
>>>> A: user@guacamole.apache.org
>>>> Oggetto: Quacamole docker install
>>>>
>>>> Hi
>>>>
>>>> I have been working through the documentation to install Quacamole using docker.
>>>>
>>>> The IP of my docker server is 192.168.1.11
>>>>
>>>> Base on my understanding of what I read, I did the following:
>>>>
>>>> Step 1: sudo docker run --name my-guacd -d guacamole/guacd
>>>>
>>>> Step 2: sudo docker run --name my-guacamole --link my-guacd:guacd -d -p 8080:8080 --restart unless-stopped guacamole/guacamole
>>>>
>>>> Step 3: sudo docker run --name quacamole-mysql -e MYSQL_ROOT_PASSWORD=mypassword! -d --restart unless-stopped mysql:latest
>>>>
>>>> Step 4: sudo docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
>>>>
>>>> Step 5:
>>>>
>>>> sudo docker run --name my-guacamole \
>>>>
>>>> --link my-guacd:guacd \
>>>>
>>>> --link guacamole-mysql:mysql \
>>>>
>>>> -e MYSQL_HOSTNAME=192.168.1.11 \
>>>>
>>>> -e MYSQL_USER=guacamole_user \
>>>>
>>>> -e MYSQL_PASSWORD=mypassword \
>>>>
>>>> --restart unless-stopped \
>>>>
>>>> -d -p 8080:8080 guacamole/guacamole
>>>>
>>>> However when looking at the logs I get
>>>>
>>>> FATAL: No authentication configured
>>>>
>>>> -------------------------------------------------------------------------------
>>>>
>>>> The Guacamole Docker container needs at least one authentication mechanism in
>>>>
>>>> order to function, such as a MySQL database, PostgreSQL database, SQLServer
>>>>
>>>> database, LDAP directory or RADIUS server. Please specify at least the
>>>>
>>>> MYSQL_DATABASE or POSTGRES_DATABASE or SQLSERVER_DATABASE environment variables,
>>>>
>>>> or check Guacamole's Docker documentation regarding configuring LDAP and/or
>>>>
>>>> custom extensions.
>>>>
>>>> My Docker setup looks as follows:
>>>>
>>>> [image.png]
>>>>
>>>> I tried following the instructions set the database up but I think I may have got those confused.
>>>>
>>>> Is there a simplified set of steps to help a NOOB get it up and running, after which I can start playing with the different settings?
>>>>
>>>> Kind regards
>>>>
>>>> Andre
>>>>
>>>> Sent with [Proton Mail](https://proton.me/) secure email.

R: R: R: Quacamole docker install (SOLVED)

Posted by MAURIZI Lorenzo <l....@comune.jesi.an.it>.
The only step I am not sure about is the below i.e. does the 'cat' line above replace this or do I need to run this before the 'cat' statement. The reason I ask is that I had originally run it and so not sure if it is actually necessary.
// Step ?: sudo docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql

This step is necessary to create the initdb.sql script in mysql “dialect”, that is used by the cat initdb.sql | etc… command.


Regards
Lorenzo


Da: André R. Basel <an...@basel.co.nz>
Inviato: giovedì 27 aprile 2023 10:45
A: user@guacamole.apache.org
Oggetto: Re: R: R: Quacamole docker install (SOLVED)

Hi Maurizi

Thanks so much for your help. I got it working with your help.

For the sake of completeness, this is what I did:

The IP of my docker server is 192.168.1.11

Step 1: sudo docker run --name my-guacd -d guacamole/guacd

Step 2: sudo docker run --name my-guacamole --link my-guacd:guacd -d -p 8080:8080 --restart unless-stopped guacamole/guacamole

Step 3: sudo docker run --name quacamole-mysql -e MYSQL_ROOT_PASSWORD=sqlpwd! -d --restart unless-stopped mysql:latest

Step 4:
sudo docker exec -it  guacamole-mysql /bin/bash

mysql -u root -p

CREATE DATABASE guacamole_db;
CREATE USER 'guacamole_user'@'%' IDENTIFIED BY 'pwd1';
GRANT ALL PRIVILEGES ON guacamole_db.* TO 'guacamole_user'@'%';
FLUSH PRIVILEGES;

sudo cat initdb.sql | sudo docker exec -i guacamole-mysql /usr/bin/mysql -u guacamole_user -ppwd1 -D guacamole_db


Step 5:

sudo docker run --name my-guacamole \
    --link my-guacd:guacd \
    --link guacamole-mysql:mysql \
    -e MYSQL_HOSTNAME=192.168.1.11  \
    -e MYSQL_DATABASE=guacamole_db \
    -e MYSQL_USER=guacamole_user \
    -e MYSQL_PASSWORD=pwd1 \
    --restart unless-stopped \
    -d -p 8080:8080 guacamole/guacamole


sudo docker logs my-guacamole


The only step I am not sure about is the below i.e. does the 'cat' line above replace this or do I need to run this before the 'cat' statement. The reason I ask is that I had originally run it and so not sure if it is actually necessary.
// Step ?: sudo docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql

André Basel
027 640 2527

Sent with Proton Mail<https://proton.me/> secure email.

------- Original Message -------
On Thursday, April 27th, 2023 at 20:28, MAURIZI Lorenzo <l....@comune.jesi.an.it>> wrote:


Hello André
Please note that when using –p option in mysql command, the password should be put without any spaces after “p”,
so in this case:
sudo cat initdb.sql | sudo docker exec -i guacamole-mysql /usr/bin/mysql -u guacamole_user -prjgtpormdsl837dejkl_kl@ -D guacamole_db

Regards.

Lorenzo

Da: André R. Basel <an...@basel.co.nz>>
Inviato: giovedì 27 aprile 2023 10:08
A: user@guacamole.apache.org<ma...@guacamole.apache.org>
Oggetto: Re: R: Quacamole docker install

Found a syntax error so when I fixed that I got

sysadmin@services:~$ sudo cat initdb.sql | sudo docker exec -i guacamole-mysql /usr/bin/mysql -u guacamole_user -p rjgtpormdsl837dejkl_kl@ -D guacamole_db
Enter password: ERROR 1045 (28000): Access denied for user 'guacamole_user'@'localhost' (using password: YES)

Will fix access and then try again



André Basel
027 640 2527

Sent with Proton Mail<https://proton.me/> secure email.

------- Original Message -------
On Thursday, April 27th, 2023 at 20:00, André R. Basel <an...@basel.co.nz>> wrote:

Thanks Lorenzo

I think I might be close now.

I created Step 3B:

Step 3b:
CREATE USER 'guacamole_user'@'localhost' IDENTIFIED BY 'dbuserpwd';
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
FLUSH PRIVILEGES

sudo cat initdb.sql | sudo docker exec -i quacamole-mysql /usr/bin/mysql -u guacamole_user -p mypassword guacamole_db

I ran the above but it did not work, instead a usage details showed eg
sysadmin@services:~$ sudo cat initdb.sql | sudo docker exec -i guacamole-mysql /usr/bin/mysql -u guacamole_user -p rjgtpormdsl837dejkl_kl@ guacamole_db
/usr/bin/mysql  Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Usage: /usr/bin/mysql [OPTIONS] [database]
  -?, --help          Display this help and exit.
  -I, --help          Synonym for -?
  --auto-rehash       Enable automatic rehashing. One doesn't need to use
                      'rehash' to get table and field completion, but startup
                      and reconnecting may take a longer time. Disable with
                      --disable-auto-rehash.
                      (Defaults to on; use --skip-auto-rehash to disable.)
  -A, --no-auto-rehash
                      No automatic rehashing. One has to use 'rehash' to get
                      table and field completion. This gives a quicker start of
                      mysql and disables rehashing on reconnect.
  --auto-vertical-output
                      Automatically switch to vertical output mode if the
                      result is wider than the terminal width.
  -B, --batch         Don't use history file. Disable interactive behavior.
                      (Enables --silent.)
  --bind-address=name IP address to bind to.
  --binary-as-hex     Print binary data as hex. Enabled by default for
                      interactive terminals.

And there was not tables in the database.

Is that line meant to do the same as Step 4: sudo docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql or or something else, or should I be running this before 3B?

Kind regards


André Basel
027 640 2527

Sent with Proton Mail<https://proton.me/> secure email.

------- Original Message -------
On Thursday, April 27th, 2023 at 19:23, MAURIZI Lorenzo <l....@comune.jesi.an.it>> wrote:

Hello André,
in step 4 you are creating on current directory a script to initialize the database, but you don’t mention if you run that script into your mysql instance, to create database structure.
If not, you are trying to run Guacamole without a database set up.
Moreover you are missing MYSQL_DATABASE variable in step 5 (see https://guacamole.apache.org/doc/gug/guacamole-docker.html#required-environment-variables)

So i think you should:
create a new database into the mysql container.
For this I would use the mysql command from inside the container, to make it simple, so you should (please note I used your example values, so change them with the real values):
docker exec –it quacamole-mysql /bin/bash
then
mysql –u root –pmypassword!
Then in mysql prompt you should create the database
Mysql>CREATE DATABASE guacamole_db;
Mysql>GRANT ALL PRIVILEGES ON guacamole_db.* TO 'guacamole_user'@'%' IDENTIFIED BY ‘mypassword’;

After that you can issue “exit” twice to go back to the container bash prompt and then to the server bash prompt outside the mysql container.

Then you should import the “initdb.sql” script to create database structure:
cat initdb.sql | docker exec -i quacamole-mysql /usr/bin/mysql -u guacamole_user -pmypassword guacamole_db

At this point you should have a complete DB for guacamole.
Then you should start youd guacamole container (step 5) adding this environment variable to the command line:

-e MYSQL_DATABASE=guacamole_db

I think you should not get the error now.

I hope that I didn’t write anything wrong!
Best regards.
Lorenzo

Da: André R. Basel <an...@basel.co.nz>>
Inviato: giovedì 27 aprile 2023 07:26
A: user@guacamole.apache.org<ma...@guacamole.apache.org>
Oggetto: Quacamole docker install

Hi

I have been working through the documentation to install Quacamole using docker.

The IP of my docker server is 192.168.1.11

Base on my understanding of what I read, I did the following:

Step 1: sudo docker run --name my-guacd -d guacamole/guacd

Step 2: sudo docker run --name my-guacamole --link my-guacd:guacd -d -p 8080:8080 --restart unless-stopped guacamole/guacamole

Step 3: sudo docker run --name quacamole-mysql -e MYSQL_ROOT_PASSWORD=mypassword! -d --restart unless-stopped mysql:latest

Step 4: sudo docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql

Step 5:

sudo docker run --name my-guacamole \
    --link my-guacd:guacd \
    --link guacamole-mysql:mysql \
    -e MYSQL_HOSTNAME=192.168.1.11  \
    -e MYSQL_USER=guacamole_user \
    -e MYSQL_PASSWORD=mypassword \
    --restart unless-stopped \
    -d -p 8080:8080 guacamole/guacamole

However when looking at the logs I get
FATAL: No authentication configured
-------------------------------------------------------------------------------
The Guacamole Docker container needs at least one authentication mechanism in
order to function, such as a MySQL database, PostgreSQL database, SQLServer
database, LDAP directory or RADIUS server. Please specify at least the
MYSQL_DATABASE or POSTGRES_DATABASE or SQLSERVER_DATABASE environment variables,
or check Guacamole's Docker documentation regarding configuring LDAP and/or
custom extensions.

My Docker setup looks as follows:
[image.png]


I tried following the instructions set the database up but I think I may have got those confused.

Is there a simplified set of steps to help a NOOB get it up and running, after which I can start playing with the different settings?

Kind regards
Andre

Sent with Proton Mail<https://proton.me/> secure email.