1. Problème d'ensemble d'encodage par défaut
Lors de l'affichage des données frontales, interrogez all select * from t_news pour trouver tout le contenu. Ensuite, cela ne fonctionnera pas lors du paramétrage des requêtes. Par exemple :
Sélectionnez * dans t_news où un titre tel que « %Source Code Education% » ; aucune donnée n'a été trouvée.
Sélectionnez * dans t_news où id = 1. 1 élément de données a été trouvé.
Faites attention aux champs marqués en rouge. C'est après que je l'ai modifié. Ils étaient à l'origine latin1.
Solution :
Le fichier de configuration de MySQL sous Windows est my.ini, qui se trouve généralement dans le répertoire racine du répertoire d'installation.
Le fichier de configuration de MySQL sous Linux est my.cnf, qui est généralement placé dans /etc/my.cnf, /etc/mysql/my.cnf. Si vous ne le trouvez pas, vous pouvez utiliser la commande find pour le trouver.
Ouvrez my.ini/my.cnf et modifiez les deux champs suivants.
Ps : Vous devez redémarrer MySQL après avoir modifié le fichier de configuration.
2. Les données ne sont pas annulées
Pendant la programmation, Spring configure les transactions, mais lorsqu'une exception se produit, les données de la base de données changent toujours. Après avoir confirmé qu'il n'y a aucun problème avec la configuration des transactions et du code, nous envisageons la possibilité de spécialiser la base de données. Nous utilisons l'outil "Navicat" pour concevoir la table. Dans la colonne "Options", nous constatons que le moteur de stockage utilisé par la table est MyISAM.
MyISAM ne prend pas en charge les transactions. La restauration entraînera une restauration incomplète et n'est pas atomique.
Changez MyISAM en InnoDB.
Il existe également un moteur de stockage par défaut dans le fichier de configuration MySQL (my.ini). S'il n'y a pas d'instruction particulière lors de la création de la table, le moteur de stockage par défaut sera utilisé.
3. Optimiser l'importation de grandes quantités de données
Dans notre travail, nous serons inévitablement confrontés à la situation d'importer de grandes quantités de données. Par exemple, vous devez interroger des données précédemment sauvegardées, importer des données réelles localement à des fins de test, importer régulièrement des données dans une base de données de sauvegarde et d'autres scénarios commerciaux.
MySQL fournit la méthode d'importation pour charger les données dans le fichier. Cependant, une configuration incorrecte entraînera également un ralentissement de la vitesse d’importation.
Solution :
Augmentez la valeur du paramètre suivant, généralement 80 % de la mémoire physique. Mais les systèmes 32 bits seront limités à 2-3,5G.
4. Activez la fonction de fonction personnalisée (base de données cloud)
Parfois, lorsque nous exécutons le code d'autres personnes, ou lors de la transplantation du serveur, nous pouvons rencontrer des situations dans lesquelles les fonctions précédemment définies par la base de données ne peuvent pas être utilisées. Surtout avec les bases de données, la fonction function n'est pas activée par défaut, ce qui empêche l'exécution de la fonction.
Nous vérifions d’abord si la fonction est activée. Comme indiqué ci-dessous :
La fonction personnalisée ici est désactivée par défaut.
Solution : utilisez "set global log_bin_trust_function_creators = 1;" pour activer la fonctionnalité de fonction personnalisée.
Requête à nouveau :
Mais cette méthode n'est qu'une solution temporaire. Après le redémarrage de MySQL, la fonction sera désactivée par défaut.
Pour activer définitivement la fonction de fonction personnalisée, vous devez ajouter "log-bin-trust-function-creators=1" au fichier de configuration.
5. Problème de casse des noms de table dans un environnement Linux
Dans l'environnement système Linux, les noms de tables MySQL sont sensibles à la casse par défaut. Parfois, si une lettre majuscule est mal saisie dans le nom de la table, la requête est introuvable.
Solution : Ajoutez "lower_case_table_names=1" à la fin du fichier de configuration my.cnf. Redémarrez ensuite MySQL.
"lower_case_table_names=1" signifie forcer l'instruction d'entrée en minuscules, puis exécuter l'instruction.