Problème d'accès à la librairie Libmysql.dll sous Windows▲
Pour l'exécution de votre programme, il faut placer cette dll dans le répertoire du projet.
Pour se connecter depuis l'IDE de Lazarus et piloter les composants tels que TSqlQuery et ajouter des rubriques, il faut placer également une copie de la dll dans le répertoire de Lazarus et, dans certains cas, cette dll doit aussi être placée dans C:\Windows\System et/ou dans C:\Windows\System32.
Attention, la version de la dll est prise en compte par Lazarus. Vous pouvez télécharger une version compatible de libmySQL.dll avec Lazarus 0.9.29 et ici (lien miroir).
Problème d'affichage des accents avec Mysql▲
Par défaut, les composants d'accès natif de Lazarus ne proposent pas la gestion de l'UTF-8 et les données ne seront pas affichées correctement dans les champs (TDBEdit, TDBGrid, etc). Ce problème peut également survenir avec d'autres composants d'accès comme ceux de ZEOS. Appliquez dans ce cas la même méthode que pour les composants natifs.
Pour remédier à cela, placez un TSqlQuery (Name = SqlQuerySet) sur votre Form ou votre DataModule et utilisez-le de la manière suivante.
Dans le code de l'événement AFTERCONNECT du TSqlConnection, placez le code suivant :
SQLQuerySet.SQL.Text : = 'SET CHARACTER SET `utf8`'
;
SQLQuerySet.ExecSql;
Lors de la connexion, la séquence sera envoyée à la base de données et vos données seront bien affichées par la suite.
Paramétrage de Mysql pour un accès distant▲
Dans le fichier de configuration de MySql (my.cnf) ou (my.ini), assurez-vous que la ligne BIND-ADRESS soit mise en commentaire. Si elle ne l'est pas, seules les connexions depuis l'IP spécifiée seront autorisées.
bind-adress
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address = 127.0.0.1
Le port 3306 est utilisé par défaut par Mysql. Vérifiez un blocage par le firewall en cas de soucis.
L'utilisateur devant accéder à la base depuis un poste distant doit avoir les privilèges pour effectuer cette opération.
Quelques commandes SQL bien pratiques▲
Liste des bases du serveur |
SHOW DATABASES |
Liste des tables et index |
SHOW TABLES |
Structure d'une table |
SHOW COLUMNS FROM 'MATABLE' |
Dernier autoinc ajouté |
SELECT DISTINCT LAST_INSERT_ID() FROM 'MATABLE' |
Initialiser la valeur de l'auto-incrément (pour la réplication) |
ALTER TABLE 'MATABLE' AUTO_INCREMENT=200000000 |
Liste des index d'une table |
SHOW INDEX FROM 'MATABLE' |
Affiche les droits de l'utilisateur en cours |
SHOW GRANTS; |
Affiche les droits d'un utilisateur sur un poste donné |
SHOW GRANTS FOR 'utilisateur'@'host'; |
Affiche les droits d'un utilisateur sur tous les postes |
SHOW GRANTS FOR 'utilisateur'@'%'; |