Eu estou usando CodeIgniter 3 e MySQL 5.7 e eu preciso encontrar uma maneira de criar um novo banco de dados on-the-fly para cada novo cliente que se inscrever para uma conta.
Então, basicamente, eu tenho um esqueleto ou uma fonte de banco de dados chamado db_source que contém todas as tabelas e alguns dados iniciais. Eu preciso ser capaz de criar um novo banco de dados, por exemplo. db_client_xxx, cada vez que um novo usuário se cadastra para uma conta. Eu preferiria criar o novo banco de dados do banco de dados fonte, se possível.
Se alguém precisar de mais informações, por favor me avise. Obrigado.
Regards, Allie
Uma pergunta semelhante ao que você precisa foi respondida aqui: como importar ficheiro.sql no banco de dados mysql usando php
Você pode despejar o db_source em um arquivo. As respostas corretas explica como executar importação um despejo em um banco de dados existente. O que você tem que adicionar a esse roteiro é criar banco de dados antes disso.
Tenha em mente que a criação do banco de dados pode levar algum tempo e pode não ser uma experiência muito boa para o usuário.
Se posso sugerir-lhe outra opção é criar antecipadamente as bases de dados, por exemplo: Database_1, Database_2 etc. e quando um novo usuário cria um banco de dados de uma conta de atribuição que não é usado para essa conta. Isso pode ser mais fácil e mais rápido para o usuário. Você pode criar uma tarefa agendada para manter a criação de banco de dados para que você sempre tem uma série de X bases de dados disponíveis. Esta abordagem também pode ser mais fácil porque você pode usar shell em vez de PHP para despejo e criar novos bancos de dados.