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 
<[email protected]> 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 <[email protected]>
> Inviato: giovedì 27 aprile 2023 10:08
> A: [email protected]
> 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 <[email protected]> 
> 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 
>> <[email protected]> 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 <[email protected]>
>>> Inviato: giovedì 27 aprile 2023 07:26
>>> A: [email protected]
>>> 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.

Reply via email to