¿Puedo compartir archivos de base de datos MySql con Windows en arranque dual?
12
Me gustaría usar tanto en Ubuntu como en Windows (arranque dual) mis archivos de base de datos MySql que residen en una partición NTFS. ¿Funcionará? ¿Alguna trampa?
PARA EL REGISTRO DE LA COMUNIDAD: El usuario pregunta sobre la compatibilidad de los formatos de datos MySQL entre Ubuntu Linux y Microsoft Windows. El usuario se pregunta si los datos almacenados en el formato Ubuntu Linux para MySQL son compatibles con la forma en que la versión de Windows de MySQL almacena datos para que la información de la base de datos pueda editarse y restaurarse tanto en Windows como en MySQL.
Thomas Ward
R: Acabo de proporcionar una respuesta extensa a esta pregunta aquí , en Unix & Linux StackExchange .
Vista elíptica
Respuestas:
9
Sí, funciona pero con algunas peculiaridades. MySQL usa los mismos formatos de archivo en todas las plataformas, por lo que todo lo que necesita es compartir el directorio de datos. Un problema es que el directorio de datos debe tener mysql como propietario y grupo en ubuntu. Y Windows no distingue entre mayúsculas y minúsculas y Linux distingue entre mayúsculas y minúsculas, así que mantenga todos los nombres uniformes: ya sea el nombre completo en minúscula o mayúscula, pero no los mezcle.
De principio a fin; Si ya tiene las cosas configuradas, es posible que necesite algunos ajustes para adaptarse a su configuración:
Instale y configure MySQL en ambos sistemas.
Detenga el servidor mysql si se está ejecutando.
Haga una nueva partición NTFS. Marque el nombre del dispositivo (llamémoslosdXN por ahora).
Mueva el directorio de datos mysql de Ubuntu a la nueva partición.
Muy buena respuesta! Solo dos comentarios: ya hay muchos nombres de casos mixtos y su uso lower_case_table_names=1funciona bien. Sin sus opciones de montaje, me encontré con este error (que en verdad es un error).
Si ha agregado una partición de Linux a un entorno anterior solo para Windows, puede usar la base de datos en su lugar con solo algunos ajustes menores. Versión larga aquí , versión corta:
Tendrá mount --bind '/media/windows/ProgramData/MySQL/MySQL Server 5.5/data' /var/lib/mysqlque ejecutarse al inicio (suponiendo que monte su unidad de Windows para /media/windowsusar fstab).
Para evitar la comprobación del tamaño de registro de innodb, deberá mover los registros de innodb para la partición de ubuntu. En my.cnf, agregue innodb_log_group_home_dir = /var/log/mysqlpara que los registros vayan al lado del registro de errores mysql.
Respuestas:
Sí, funciona pero con algunas peculiaridades. MySQL usa los mismos formatos de archivo en todas las plataformas, por lo que todo lo que necesita es compartir el directorio de datos. Un problema es que el directorio de datos debe tener mysql como propietario y grupo en ubuntu. Y Windows no distingue entre mayúsculas y minúsculas y Linux distingue entre mayúsculas y minúsculas, así que mantenga todos los nombres uniformes: ya sea el nombre completo en minúscula o mayúscula, pero no los mezcle.
De principio a fin; Si ya tiene las cosas configuradas, es posible que necesite algunos ajustes para adaptarse a su configuración:
sdXN
por ahora).Mueva el directorio de datos mysql de Ubuntu a la nueva partición.
utilizando
mv
permisos de guardado.Hacer un nuevo directorio mysql
Monte la partición NTFS en
/var/lib/mysql
. Cambie el nombre del dispositivo a lo que obtuvo cuando creó la partición NTFS.Para montar automáticamente en el arranque, busque el UUID de la partición y localice y edite
/etc/fstab
.Cambie la ruta 'datadir'
/etc/mysql/my.cnf
para que apunte a/var/lib/mysql/mysql_data
Inicie el servidor mysql y pruébelo.
Edite el archivo de configuración de Windows (
my.ini
) y establezca 'datadir' enX:/mysql_data
(reemplaceX:
donde lo monta en Windows).Compilado del tema 1442148 en UF.org .
Tengo la versión de Ubuntu funcionando; en parte no probado ya que no tengo Windows
fuente
lower_case_table_names=1
funciona bien. Sin sus opciones de montaje, me encontré con este error (que en verdad es un error).Si ha agregado una partición de Linux a un entorno anterior solo para Windows, puede usar la base de datos en su lugar con solo algunos ajustes menores. Versión larga aquí , versión corta:
Tendrá
mount --bind '/media/windows/ProgramData/MySQL/MySQL Server 5.5/data' /var/lib/mysql
que ejecutarse al inicio (suponiendo que monte su unidad de Windows para/media/windows
usar fstab).Para evitar la comprobación del tamaño de registro de innodb, deberá mover los registros de innodb para la partición de ubuntu. En
my.cnf
, agregueinnodb_log_group_home_dir = /var/log/mysql
para que los registros vayan al lado del registro de errores mysql.fuente