Serveurs de bases de données
Serveurs de bases de données pour la recherche
Les serveurs de bases de données MySQL et Postgres sont disponibles sur Cedar et Graham.
Information | Cedar, MySQL | Cedar, Postgres | Graham, MySQL |
---|---|---|---|
Description | serveur d’usage général pour configurer et traiter des tables SQL | serveur d’usage général pour configurer et traiter des tables SQL; comprend l’extension PostGIS pour les données spatiales | serveur d’usage général pour configurer et traiter des tables SQL |
Nom long | cedar-mysql-vm.int.cedar.computecanada.ca | cedar-pgsql-vm.int.cedar.computecanada.ca | cc-gra-dbaas1.sharcnet.ca IP: 199.241.163.99 |
Nom court | cedar-mysql-vm | cedar-pgsql-vm | --- |
Récente version | MariaDB version 11.5 | PostgreSQL version 16, PostGIS version 3.3 (extension) | MariaDB version 11.5 |
Documentation | site web MariaDB | site web Postgres, documentation PostGIS | site web MariaDB |
Serveur MySQL sur Cedar
Le serveur MySQL sur Cedar offre MariaDB 10.4 qui est compatible avec les autres versions MySQL. Pour l'information sur la compatibilité, consultez MariaDB versus MySQL: Compatibility.
Le serveur MariaDB est l'instance cedar-mysql-vm
(nom long, cedar-mysql-vm.int.cedar.computecanada.ca). Si vous possédez un compte sur le serveur MySQL, vous pouvez y accéder uniquement par le nœud de connexion (cedar.computecanada.ca), les nœuds de calcul ou le portail Cedar.
Pour des raisons de sécurité, vous ne pouvez pas vous connecter directement au serveur de base de données via SSH.
Compte et connexion
Vous devez détenir un compte MySQL pour avoir le privilège requis pour créer une base de données. Pour obtenir un compte sur le serveur MySQL de Cedar, contactez le soutien technique en indiquant
- le nom d'utilisateur pour votre compte avec l'Alliance et
- l'espace nécessaire pour la base de données de votre projet.
Nous créerons un compte MySQL pour lequel le nom d'utilisateur sera celui de votre compte avec l'Alliance ainsi qu'une chaîne de 16 nombres aléatoires comme mot de passe. Un fichier nommé .my.cnf
sera enregistré dans votre répertoire /home contenant le nom d'utilisateur, le mot de passe, le nom du serveur de base de données et d'autres renseignements nécessaires pour vous connecter. Ce fichier est confidentiel. Son contenu ne peut pas être modifié, mais le fichier peut être lu ou supprimé. En supprimant ce fichier, vous perdrez l’accès à votre base de données.
Lancez le client mysql
pour vous connecter au serveur MySQL. Une version moins récente du client est disponible sans que vous ayez à charger un module, mais vous n'aurez pas les dernières fonctionnalités du serveur. Nous vous recommandons de charger une version plus récente du client avec
[name@server ~]$ module load mariadb [name@server ~]$ mariadb --version
Testez la configuration de votre compte MySQL avec
[name@server ~]$ mysql
MariaDB [(none)]> show databases;
MariaDB [(none)]> quit
N'utilisez pas les options -p
ou -h
en argument en lançant mysql
. Le mot de passe et le nom du serveur proviendront automatiquement du fichier .my.cnf
.
Vous pouvez soumettre une commande SQL à partir du nœud de connexion puisque l'utilisation du CPU provient pour une grande part du côté du serveur de base de données. Toutefois, si votre script contient plusieurs commandes SQL et utilise beaucoup le CPU, il doit faire partie d'une tâche soumise à l'ordonnanceur; voyez Exécuter des tâches pour plus d'information.
Configuration
Pour créer des tables et faire des requêtes, vous devez créer votre propre base de données dont le nom doit commencer par nom de l'utilisateur_, soit votre nom d'utilisateur MySQL. Si votre nom d'utilisateur est david, le nom de la base de données doit commencer par david_ et les commandes pour créer david_db1 seraient
[name@server ~]$ mysql
MariaDB [(none)]> CREATE DATABASE david_db1;
MariaDB [(none)]> quit
Vous pouvez créer plusieurs bases de données, mais leurs noms doivent commencer par nom d'utilisateur_. Ces bases de données seront accessibles uniquement par vous à partir du nœud de connexion (cedar.computecanada.ca), des nœuds de calcul ou du portail Cedar et vous aurez tous les privilèges pour la création d'objets, par exemple les tables et les vues.
Utilisation de votre base de données
Supposons que votre compte est david et que vous avez créé la base de données david_db1. Pour l'utiliser, lancez
[name@server ~]$ mysql
MariaDB [(none)]> -- List available databases. Confirm david_db1 is in the list
MariaDB [(none)]> SHOW DATABASES;
MariaDB [(none)]> -- Get into the database
MariaDB [(none)]> USE david_db1;
MariaDB [(none)]> ... Issue SQL commands. See below for information.
MariaDB [(none)]> quit
Consultez les sites web suivants pour plus de renseignements sur MariaDB :
Partager vos données MySQL
Si vous avez un compte MySQL sur Cedar, vous pouvez partager vos données. Pour partager une table :
- Connectez-vous à MySQL avec
mysql
. - Lancez la commande
USE database;
- database est le nom de la base de données où se trouve la table que vous voulez partager
- Lancez la commande
GRANT priv_type ON mytable TO ′user′@'172.%';
- priv_type est le type de privilège que vous voulez accorder
- mytable est le nom de la table
- user est le nom d'utilisateur de la personne avec qui vous voulez partager la table
Exemple de partage
Ici, l'utilisateur david veut partager la table mytable de la base de données david_db avec john en lecture seulement.
[name@server ~]$ mysql
MariaDB [(none)]> USE david_db;
MariaDB [(none)]> GRANT SELECT on mytable to 'john'@'172.%';
MariaDB [(none)]> quit;
Serveur PostgreSQL sur Cedar
Le serveur Postgres sur Cedar offre Postgres et l'extension PostGIS.
Le serveur PostgreSQL est l'instance cedar-pgsql-vm (nom long, cedar-pgsql-vm.int.cedar.computecanada.ca). Si vous possédez un compte sur le serveur PostgreSQL, vous pouvez y accéder uniquement par le nœud de connexion (cedar.computecanada.ca), les nœuds de calcul ou le portail Cedar.
Pour des raisons de sécurité, vous ne pouvez pas vous connecter directement au serveur de base de données via SSH.
Pour obtenir un compte sur le serveur PostgreSQL de Cedar, contactez le soutien technique en indiquant
- votre nom d'utilisateur,
- l'espace nécessaire pour la base de données de votre projet,
- si vous avez besoin de l'extension PostGIS.
Compte et connexion
Nous créerons un compte PostgreSQL pour lequel le nom d'utilisateur sera celui de votre compte avec l'Alliance. Vous aurez accès à une base de données dont le nom sera <nom d'utilisateur>̠db. Vous ne pouvez pas créer une base de données, mais si vous en avez besoin de plus d'une, écrivez au soutien technique.
Vous n'avez pas besoin d'un mot de passe pour accéder à votre compte PostgreSQL sur Cedar. Pour des raisons de sécurité, le mot de passe pour votre compte avec l'Alliance ne doit JAMAIS être requis ou utilisé dans un script. Les utilisateurs n'ont ainsi pas d'accès direct aux bases de données des autres utilisateurs.
Lancez le client psql
pour vous connecter au serveur PostgreSQL. Une version moins récente du client est disponible sans que vous ayez à charger un module, mais vous n'aurez pas les dernières fonctionnalités de la version 10. Nous vous recommandons le charger une version plus récente avec
[name@server ~]$ module load postgresql [name@server ~]$ psql --version
Utilisation de votre base de données
Supposons que votre compte est david et qu'on vous a assigné la base de données david_db. Pour l'utiliser à partir d’un nœud de connexion, lancez
[name@server ~]$ psql -h cedar-pgsql-vm -d david_db
david_db=> -- List names of tables in your database
david_db=> \dt
david_db=> ... Issue SQL commands. See below for more information.
david_db=> -- Quit
david_db=> \q
Consultez les sites web suivants pour plus de renseignements sur PostgreSQL :
Partager vos données PostgreSQL
Pour partager les données de votre base de données PostgreSQL,
- la personne avec laquelle vous voulez partager vos données doit détenir un compte PostgreSQL sur la grappe (voir ci-dessus),
- donnez à cette personne un accès
connect
à votre base de données, - pour chaque table ou vue que vous voulez partager, donnez aussi un ou plusieurs des accès
select, update, insert
etdelete
, - l'accès à une table, une vue ou à la base de données peut être révoqué.
Dans cet exemple, David partage une table avec Kim :
[name@server ~]$ psql -h cedar-pgsql-vm -d david_db
david_db=> -- Give kim connect access to the database
david_db=> grant connect on database david_db to kim;
david_db=> -- Give kim select-only access to a table called mytable
david_db=> grant select on mytable to kim;
david_db=> -- Quit
david_db=> \q
Ici, Kim accède à la table partagée :
[name@server ~]$ psql -h cedar-pgsql-vm -d kim_db
kim_db=> -- Connect to the database containing the table to be accessed
kim_db=> \c david_db
david_db=> -- Display the rows in the shared table
david_db=> select * from mytable;
david_db=> -- Quit
david_db=> \q
Ici, David révoque le droit d'accès de Kim :
[name@server ~]$ psql -h cedar-pgsql-vm -d david_db
david_db=> -- Revoke kim's select-only access to a table called mytable
david_db=> revoke select on mytable from kim;
david_db=> -- Revoke kim's connect access to the database
david_db=> revoke connect on database david_db from kim;
david_db=> -- Quit
david_db=> \q
Serveur MySQL sur Graham
Les étapes pour obtenir et utiliser un compte sur le serveur MySQL de Graham sont semblables à celles décrites ci-dessus pour Cedar.
Serveurs infonuagiques
Bases de données à la demande (DBaaS)
Si vous avez besoin de plus qu'une instance pour traiter votre base de données, vous pouvez utiliser MySQL/MariaDB ou Postgres sur un ordinateur physique. Les copies de sauvegarde se font chaque jour et sont conservées pour trois mois. Pour y accéder, contactez le soutien technique.
Dans votre demande, indiquez le réseau client ou l'adresse IP à partir de laquelle vous voulez accéder à la base de données.
Type | Nom de l'hôte | Port TCP |
---|---|---|
mysql | dbaas101.arbutus.cloud.computecanada.ca | 3306 |
pgsql | dbaas101.arbutus.cloud.computecanada.ca | 5432 |
Téléchargez le certificat de l'autorité d'authentification.
PostgreSQL
Votre instance utilisera une connexion ssl pour se connecter à l'hôte DBaaS. Dans l'exemple suivant, la connexion se fait à l'hôte DBaaS par user01 et utilise la base de données dbinstance via une connexion ssl.
psql --set "sslmode=require" -h dbaas101.arbutus.cloud.computecanada.ca -U user01 -d dbinstance Password for user user01: SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) dbinstance=> \l dbinstance List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ------------+--------+----------+-------------+-------------+------------------- dbinstance | user01 | UTF8 | en_US.UTF-8 | en_US.UTF-8 | user01=CTc/user01 (1 row)
La connexion ssl s'applique et les connexions en texte brut échoueront.
MariaDB/MySQL
Votre instance utilisera une connexion ssl pour se connecter à l'hôte DBaaS. Dans l'exemple suivant, la connexion se fait à l'hôte DBaaS par user01 et utilise la base de données dbinstance via une connexion ssl.
mysql --ssl -h dbaas101.arbutus.cloud.computecanada.ca -u user01 -p dbinstance Enter password: MariaDB [dbinstance]> show databases; +--------------------+ | Database | +--------------------+ | dbinstance | | information_schema | +--------------------+ 2 rows in set (0.001 sec)
Si vous essayez de vous connecter avec du texte brut, votre authentification échouera.
mysql -h dbaas101.arbutus.cloud.computecanada.ca -u user01 -p dbinstance Enter password: ERROR 1045 (28000): Access denied for user 'user01'@'client.arbutus' (using password: YES)