Use MySQL as database backend

Install PyMySQL python module

If you did not use the packaged version of passhport (deb/rpm), proceed as follow. If you used the package version, go directly below, to the MySQL configuration.

If you want to use MySQL as the database backend you'll need to add a python module : PyMySQL.

As passhport user, install PyMySQL :

$ /home/passhport/passhport-run-env/bin/pip install PyMySQL

MySQL configuration

Create a passhport database in you MySQL server (may be different on your distro, this is just an example) :

# mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE passhport;
Query OK, 1 row affected (0.00 sec)

Then create a user that'll have all rights on the passhport database :

MariaDB [(none)]> GRANT ALL PRIVILEGES ON passhport.* TO [email protected] IDENTIFIED BY 'iwetoh3oochieshaRei4';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> Bye

#

passhportd configuration

Change the configuration of the passhportd.ini file (/etc/passhport/passhportd.ini). You need to change the SQLALCHEMY_DATABASE_URI parameter to :

SQLALCHEMY_DATABASE_URI        = mysql+pymysql://passhport:[email protected]/passhport

As passhport (system) user, initialize the database :

$ /home/passhport/passhport-run-env/bin/python /home/passhport/passhport/passhportd/db_create.py

Re-launch passhportd (as root) :

# systemctl restart passhportd

PaSSHport now use MySQL backend.