Expertos en Raspberry, MySQL... les pido ayuda. :P

Vaale, pues he conseguido una Raspberry Pi 4 y me gustaría usarla de servidor para un juego. El servidor tendría una base MySQL y estaría siempre encendido.
Tengo varias preguntas [sonrisa] , ayudar con lo que podáis, como si respondéis solo a una.

1. ¿Esto es malo para la Raspberry Pi? Me refiero en el ámbito de que esté siempre encendida (tiene ventiladores aunque no se a que temperatura media está con ellos).

2. ¿Le podría añadir un HDD por USB y almacenar los datos de MySQL ahí? Tengo un HDD de 500 GB que me vendría perfectamente para eso. He leído por ahí que no es bueno que esté todo el rato escribiendo y leyendo datos, pero no sé si eso se aplicará solo a la SD o también a dispositivos por USB. No sé si se podrían almacenar ahí los datos y si esto sería malo para la Raspberry o el disco.

3.¿Le debería añadir un firewall? Supongo que sí. Creo que viene sin firewall de forma predeterminada. ¿Qué le podría poner más de seguridad?

4. ¿Debería usar otro OS para el servidor (No Raspbian)? El servidor lo programo en C# y me vendría bien no liarme mucho cada vez que quiera cambiar el código del servidor.

Muchas gracias a todos, y espero que me puedan guiar un poco [+risas]
Hola

pues veamos:

1.- Yo tengo una raspberry2 que lleva encendida años... sin ventiladores y sin problemas, una 4 con un ventilador no creo que te de problemas

2.-Sin problemas, de hecho te recomiendo que intentes meter TODO el sistema en el HDD, o bien arrancando desde USB via firmware:
https://www.raspberrypi.org/documentati ... des/msd.md

O usando una SD solo para hacer el boot y luego mover root al HDD o USB externo.

3.- Depende de donde la tengas, si la tienes en una DMZ por supuesto, si la vas a tener en casa, con que solo abras el puerto del servidor tendrás suficiente firewall, si quieres abrir otros puertos como SSH o FTP, te recomiendo fail2ban antes que un firewall.

4.- Raspbian es lo suyo, ahora bien, yo no haría el servidor en c# si vas a usarlo en una raspberry, intenta usar c++ o c, ya que al final C# tiene que interpretarse vía MONO y es código interpretadoy por lo tanto algo mas lento (excepto que lo precompiles y no es algo baladí aunque la documentación de MONO lo pinte muy fácil)
Ten en cuenta que una raspberry no es un PC X86, desconozco el estado de MONO en maquinas ARM64
@malainfluencia Vale, muchas gracias por tus respuestas [sonrisa] .

Bueno, cuando programo en c# lo tengo que compilar, y se crea un .exe que se ejecuta con 'mono test.exe'. No sé si es a la compilación que te refieres, pero como soy nuevo en linux y eso, estoy muy liado. De todas formas he estado buscando y no he leido mucho de que c# sea peor que otros. Aún así no voy a usarla para nada muy importante que digamos así que no creo que haya problemas.
Y sobre los puertos, pues, para conexiones de la WAN tengo que abrir los puertos del router, si no los abro están cerrados así que supongo que no haría falta ningún tipo de firewall para la raspberry. A menos que vengan a mi casa y me roben el internet xD....

Y una dudilla más. ¿No sería mejor asignar directamente dónde se almacenan las bases de datos al HDD? Es que hay un comando y creo que es mucho mejor ya que no me tengo que complicar mucho la vida, que me ha costado bastante conseguirla y no me gustaría romperla toqueteando cosillas...

Bueno pues eso, muchas gracias y ahora me pondré a ver las demás cosas.
@G44Gonzalo
Yo he tendió problemas usando las raspberry pi sobre las SD durante mucho tiempo, al final, lo que dicen es cierto y las SD acaban petando, no son el mejor soporte para un sistema operativo. Pero si lo prefieres, efectivamente puedes crear un simlink, o montar la unidad USB donde te plazca y crear ahí la base de datos o lo que necesites para tu servicio.

Yo de todas maneras perdería los 10 minutos que cuesta prepararlo todo para arrancar desde USB en la raspberry pi, te prometo que es muy sencillo y no rompes nada de nada.

EDIT: Link a documentacion para arrancar por USB:
https://www.raspberrypi.org/documentati ... des/msd.md



Los .exe que creas con C# son código interpretado, no código nativo.

Para que sea código nativo, necesitas usar el mono AOT y en mi experiencia no es tan bonito como lo pintan:

https://www.mono-project.com/docs/advanced/aot/

Cuando compilas normal el .exe necesitaras usar mono siempre para ejecutarlo, y al final es un punto de fallo mas que añades el cual tu no controlas mucho

Yo por comodidad, si sabes usarlo tiraría de C++ antes que de C# teniendo en cuenta que el objetivo en este caso es una Raspberry pi que usa Linux.
Para usar c#, porque no dotnet de m$ en vez de Momo?
@malainfluencia Vale gracias por todo, puede que al final acabe aprendiendo C++, pero por ahora me gustaría solucionar algo, si puedes ayudarme estaría bien. A ver, directamente, no tengo ni idea de cómo añadir el conector de MySQL a el código (C#) . Llevo varios días buscando y fustigándome, estoy hartito la verdad, por que no encuentro nada que me sirva. Estoy usando "Geany", y no me está gustando para nada, es el que me viene por defecto y no tengo ni idea de cuál debería usar y todo eso. De todas formas si no sabes respondermelo o estás harto XD pues abrire otro hilo.

Y a lo que dice Zokormazo, lo buscaré luego :)
@G44Gonzalo pues sinceramente ahí no te puedo ayudar, en C# estoy un poco perdidito...

Una busqueda rápida en duckduckgo, me lleva a este pequeño tutorial:

https://evilnapsis.com/2015/07/10/conec ... con-mysql/
7 respuestas