Cet article implémente la fonction
Résoudre l'erreur discuz run_sql_error lors de l'installation de MySQL8.0
Si vous souhaitez voir la solution directement, accédez directement au répertoire de résolution de problèmes
Machine virtuelle VMware
Centos7.3
PHP7.0
MySQL8.0
NGINX1.14
Discuz3.4
L'environnement local est PHP5.6+MySQL5.6 et il n'y a aucun problème pour installer Discuz .
Le problème suivant se produit sur les centos de la machine virtuelle La table MySQL ne peut pas être créée et l'erreur d'installation est signalée
En raison de l'inconvénient de prendre des captures d'écran à partir du terminal centos, toutes les modifications d'environnement ci-dessous seront effectuées sur xshell et accessibles directement sur la machine hôte.
À propos de la configuration de l'utilisation de xsheel pour se connecter à une machine virtuelle
Le mode de connexion est NAT et les outils ont été installés
Utilisez xsheel pour vous connecter, dans La machine virtuelle utilise ifconfig pour vérifier l'adresse IP
puis vous devez saisir le mot de passe du compte. est le mot de passe de votre compte de machine virtuelle
La connexion est réussie et cela ressemble à ce qui suit Vous pouvez entrer PHP -v pour afficher les informations de version PHP
.L'autre est FTP, car il est nécessaire Pour transférer quelque chose, j'ai également utilisé le FTP de l'hôte pour me connecter à la machine virtuelle. De la même manière, entrez l'adresse IP et le port est 22
Une fois la connexion réussie, vous pouvez obtenir le fichier de la machine virtuelle
La cause première de ce problème est la version MySQL. La version supportée par discuz est PHP5.3 Mais tous les fichiers de base de données sont créés sur MySQL5.5. Par conséquent, le jeu de caractères sera tronqué.
À ce stade, nous ouvrons /etc/my.ini C'est la configuration par défaut. Ne vous inquiétez pas du mysqldump ci-dessous. C'est le cas où la réplication maître-esclave MySQL a été configurée auparavant. pour avoir des données configurées.
Ajoutez le code suivant à ce fichier
init_connect='SET NAMES utf8' default-storage-engine=INNODB character-set-server=utf8 collation-server=utf8_general_ci default_authentication_plugin=mysql_native_password
Dans mysql8.0, tous les moteurs de stockage sont innodb , donc le le paramètre par défaut ici est innodb
Le jeu de caractères est défini sur utf8
default_authentication_plugin pour modifier le plug-in de vérification du mot de passe
Après la configuration ci-dessus, testons-le
Entrez http://192.168.254.130/forum/install/index.php dans la barre d'adresse, puis passez à l'étape suivante. Entrez le mot de passe de votre compte de base de données ici
Cliquez sur confirmer et il n'y aura pas de rapport d'erreur
Visitez simplement le forum OK
Affichage de la base de données
Le nombre total de tables consultées est de 292 tables
Rendez-vous ensuite dans la base de données installée localement et vérifiez que le numéro est également 292
Ce qui précède est la solution à l'erreur d'installation de Discuz dans MySQL8.0. Bien qu'elle ne nécessite que quelques lignes de configuration, elle ne peut pas être résolue en peu de temps.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!