On 29 December 2015 at 17:51, J. Roeleveld <[email protected]> wrote:

> On Tuesday, December 29, 2015 04:34:33 PM Mick wrote:
>
> > Can you please advise what GRANTS did you use to create a dedicated
> > postgresql user for akonadi?
>
> Grants?
>

Yes, in the sense that the akonadi user will have certain privileges
granted to be able to create tables, edit them, etc.  I assume your
commands grant all privileges.

I did the following:
> % createuser -P <akonadiuser>
> (NOTE: You need to set a password, which is why I use the "-P" option)
>
> % createdb -E UTF8 -O <akonadiuser> <akonadidb>
>
> My config for this is:
>
> % cat .config/akonadi/akonadiserverrc
> [%General]
> Driver=QPSQL
>
> [QPSQL]
> Name=<akonadidb>
> Host=localhost
> Options=
> ServerPath=/usr/bin/pg_ctl
> InitDbPath=/usr/bin/initdb
> StartServer=false
> User=<akonadiuser>
> Password=<akonadipassword>
> Port=5432
>
> [Debug]
> Tracer=null
>
> --
> Joost


Having been away from postgres for the best part of 7 years now, it is a
struggle to find my feet again.  As a result I have been chasing my tail on
this task today, not making much progress.  :-(

Ideally, I'd like to keep any akonadi databases in ~/.local/share/akonadi/
for simplicity of backups.  I tried creating a symlink from the default
directory /var/lib/postgresql/9.4/data, but all sort of fs access problems
ensued when I tried to run 'emerge --config dev-db/postgresql:9.4'.  I
tried different ownerships and access rights and eventually I abandoned
this idea just to get things going.  I let pg to install its files in the
default data directory.

Then I created a database and user.  The initial user (akonadidbuser) could
not access the database, so I created a different user the same as my unix
user (michael):

$ psql -U postgres -d postgres
psql (9.4.5)
Type "help" for help.
postgres=# \l
                                       List of databases
   Name    |     Owner     | Encoding | Collate |    Ctype    |
Access privileges
-----------+---------------+----------+---------+-------------+---------------------------------
 akonadidb | michael | UTF8     | C       | en_GB.UTF-8 | =Tc/michael
             +
           |               |          |         |             |
michael=CTc/michael
 postgres  | postgres      | UTF8     | C       | en_GB.UTF-8 |
 template0 | postgres      | UTF8     | C       | en_GB.UTF-8 |
=c/postgres                    +
           |               |          |         |             |
postgres=CTc/postgres
 template1 | postgres      | UTF8     | C       | en_GB.UTF-8 |
=c/postgres                    +
           |               |          |         |             |
postgres=CTc/postgres
(4 rows)


However, when I try to start akonadi it fails because michael is not
allowed to login ...:

Failed to use database "akonadidb"
Database error: "FATAL:  role "michael" is not permitted to log in
QPSQL: Unable to connect"
Trying to create database now...
QSqlDatabasePrivate::removeDatabase: connection 'initConnection' is still
in use, all queries will cease to work.
Database error: Cannot open database.
Last driver error: "QPSQL: Unable to connect"
Last database error: "FATAL:  role "michael" is not permitted to log in
"
Unable to open database "FATAL:  role "michael" is not permitted to log in
QPSQL: Unable to connect"


So eventually, I setup user 'postgres' in
~/.config/akonadi/akonadiserverrc, with no passwd and akonadi was able to
start.  Can you please help me to configure this correctly, so that the
database is saved in my ~/.local fs and akonadi can use it?

This is my akonadiserverrc at the moment:

[%General]
Driver=QPSQL
SizeThreshold=4096
ExternalPayload=false

[QPSQL]
Name=akonadidb
Host=localhost
User=postgres
Password=
Options=
ServerPath=/usr/bin/pg_ctl
InitDbPath=/usr/bin/initdb
StartServer=false
Port=5432

-- 
Regards,
Mick

Reply via email to