Est-il possible de porter des données d'une table de base de données mysql et de les transférer vers une autre table de base de données mysql?.
ces deux bases de données mysql sont des bases de données joomla, et j'aimerais transférer table_users.
Y at-il un moyen que je peux automatiser ce processus, peut-être utiliser un cronjob.
Vous pouvez partager les utilisateurs d'un seul Joomla! site à plusieurs autres Joomla! sites (tant que vous les conservez sur la même version de J!) en liant simplement les tables utilisateur des bases de données. Il n'est pas nécessaire de créer des tâches cron ou des scripts de transfert de données complexes. De plus, si vous essayez uniquement de transférer le table_users
_ table, vous pourriez avoir des problèmes avec le site.
Voici comment vous le faites dans Joomla! 2.5 - 3.6 (version actuelle):
$secret
valeur du site principal configuration.php
fichier dans le même fichier sur tous les sites "soeurs".Exécutez le script SQL suivant sur chacune des bases de données des sites soeurs:
RENAME TABLE `josPrefix2_users` TO `josPrefix2_bak_users`;
RENAME TABLE `josPrefix2_session` TO `josPrefix2_bak_session`;
RENAME TABLE `josPrefix2_usergroups` TO `josPrefix2_bak_usergroups`;
RENAME TABLE `josPrefix2_user_notes` TO `josPrefix2_bak_user_notes`;
RENAME TABLE `josPrefix2_user_profiles` TO `josPrefix2_bak_user_profiles`;
RENAME TABLE `josPrefix2_user_usergroup_map` TO `josPrefix2_bak_user_usergroup_map`;
RENAME TABLE `josPrefix2_viewlevels` TO `josPrefix2_bak_viewlevels`;
CREATE VIEW josPrefix2_users AS SELECT * FROM dbSite1.josPrefix1_users;
CREATE VIEW josPrefix2_session AS SELECT * FROM dbSite1.josPrefix1_session;
CREATE VIEW josPrefix2_usergroups AS SELECT * FROM dbSite1.josPrefix1_usergroups;
CREATE VIEW josPrefix2_user_notes AS SELECT * FROM dbSite1.josPrefix1_user_notes;
CREATE VIEW josPrefix2_user_profiles AS SELECT * FROM dbSite1.josPrefix1_user_profiles;
CREATE VIEW josPrefix2_user_usergroup_map AS SELECT * FROM dbSite1.josPrefix1_user_usergroup_map;
CREATE VIEW josPrefix2_viewlevels AS SELECT * FROM dbSite1.josPrefix1_viewlevels;
Remarque 1: Pour le script ci-dessus, vous devez:
dbSite1
avec le nom de la base de données de votre site maître.josPrefix1
avec le préfixe des tables de base de données de votre site maître.josPrefix2
avec le préfixe des tables de base de données de votre site partenaire.Remarque 2: Si des données sont déjà stockées sur l'un des sites soeurs, vous devrez peut-être mettre à jour l'ID utilisateur de nombreuses entrées de la base de données. Les identifiants d'utilisateur auront changé. Exemples: auteur de l'article et utilisateur modifié, journaux d'accès LogMan, etc.
Réponse originale:
Comment partager une table entre 2 ou plusieurs bases de données?
Vous pouvez simplement créer 3 requêtes MySql (s'il ne s'agit pas de tables de base de données personnalisées) comme
"insérer ... sélectionnez ..."
ainsi, il sélectionnera les données selon vos besoins et les insérera dans une autre table en une seule transaction. La migration d'un demi-million d'enregistrements s'effectuera en 20 secondes maximum. Je peux vous donner plus de détails si vous m'envoyez un e-mail à [email protected]