Mysql
 sql >> Database >  >> RDS >> Mysql

Installazione di MySQL con un'app .NET winforms

Fase 1:stai sbagliando

Stai tentando di installare il server mysql . Questo dovrebbe essere il tuo primo indizio che qualcosa non va. La maggior parte delle app server sono progettate per essere installate sui server, non sui client. Il punto degno di nota in questo è che alle app del server piace presumere di essere "proprietari" del server. Questo è un gigantesco no-no per le app client.

Fase 2:prendi una decisione, ora che siamo adeguatamente informati

Ora che abbiamo stabilito che stiamo sbagliando, dobbiamo scegliere cosa fare. Abbiamo 2 opzioni:

  1. Passa da MySQL a un database "client" come SQLite o SQL Server Compact Edition.
  2. Risolvi i problemi di installazione dell'app del server.

Personalmente consiglierei di passare a SQLite (o simile) il prima possibile. È la "cosa giusta" da fare e non dovrai mantenere gli hack per gli anni a venire.

Fase 3:vorrai comunque hackerare MySQL perché probabilmente sembra più semplice.

Sei stato avvertito. Ecco alcune delle cose di cui dovrai essere consapevole e mitigare:

  1. MySQL vuole installare in file di programma\mysql. Se l'utente ha già installato MySQL. Spezzerai tutto
    • Dovrai indicare alla tua versione di MySQL di essere installata in una cartella personalizzata. Lo consiglierei come sottocartella della tua applicazione
  2. MySQL vuole essere eseguito come servizio (e il servizio sarà probabilmente chiamato 'mysql'). Anche in questo caso, se l'utente ha già mysql, interromperai tutto.
    • Dovrai eseguire il tuo servizio con un nome diverso
  3. Probabilmente il server MySQL vorrà scrivere file in Programmi\ecc.
    • Dovrai modificare la sua configurazione in modo che scriva in %APPDATA% e così via
  4. MySQL presumerà che sia sempre eseguito dallo stesso utente. Se hai 2 utenti sulla macchina che vogliono usare il tuo programma, dovrai hackerare di conseguenza, eseguendo MySQL come account di servizio locale (difetti di sicurezza ahoy), o installando un MySQL separato per ogni utente.

Quindi, con tutto questo in mente, direi che la soluzione migliore è imposta un MySQL xcopyable