Red de conocimiento informático - Conocimiento informático - Cómo hacer que VMware vCenter en Linux sea compatible con MySQL

Cómo hacer que VMware vCenter en Linux sea compatible con MySQL

Convertir comandos de Microsoft SQL a comandos de MySQL

A continuación, configuré el código a través de SQL e hice los siguientes cambios. Comenzamos a estudiar las tablas de definición de Microsoft SQL para acercar las tablas de MySQL a las tablas de Microsoft SQL. Comenzando con el archivo /usr/lib/vmware-vpx/VCDB_mssql.sql, creé un archivo llamado VCDB_mysql.sql.

Las conversiones son las siguientes; sin embargo, estos cambios obligarán a vCenter a admitir solo cadenas UTF-8. Puede admitir fácilmente UTF-16, pero con el índice de tamaño de 1000 bytes en MySQL, hay un límite y algunos tipos de campos nvarchar superarán ese límite.

Tipo NTEXT convertido a tipo TEXT o tipo BLOB (si desea admitir UTF-16) Tipo NVARCHAR convertido a VARCHAR Tipo nvarchar convertido a varchar

ACCESSIBLE e INTERVAL se tratan como MySQL palabra clave por lo que necesitan realizar la siguiente conversión:

INTERNAL a `INTERVAL`

ACCESSIBLE a `ACCESSIBLE`

Finalmente, algunos en Microsoft SQL Server y MySQL Las mismas funciones, no hacen lo mismo, especialmente la función isnull. Este es un punto de discordia en MySQL, no en la función nvl de Microsoft SQL u Oracle, que es equivalente a la función isnull. Este cambio es el siguiente:

cambio de isnull a ifnull

ISNULL cambió a IFNULL

Además, en comparación con Microsoft SQL, la función CAST en MySQL es diferente parámetros. Tuve que cambiar CAST para convertir el número por tipo SIGNED en lugar de BIGINT porque la función CAST en MySQL no es compatible con BIGINT. Además, len no es una función MySQL válida, por lo que también debemos modificar las dos declaraciones de base de datos mencionadas anteriormente a LENGTH en lugar de LEN.

El último problema es la capitalización. Todo en Linux distingue entre mayúsculas y minúsculas, incluidos los nombres de las bases de datos MySQL, por lo que el cambio final es convertir mayúsculas y minúsculas.

vpx_sequence a VPX_SEQUENCE

vpx_object_type a VPX_OBJECT_TYPE

vpx_lock a VPX_LOCK

vpx_version a VPX_VERSION

Utilice lo siguiente comando Envíe el nuevo esquema al servidor de base de datos MySQL. NOTA: Debe reemplazar el parámetro IPOfMySQLServer con la dirección IP de su servidor MySQL, reemplazar el parámetro MySQLUserName con su nombre de usuario MySQL y el comando le pedirá una contraseña.

mysql -p -h IPOfMySQLServer -u MySQLUserName lt; VCDB_mysql.sql

Ahora solo queda resolver algunos procedimientos almacenados STATS, deshacer y eliminar la base de datos.

Sin embargo, incluso después de todas estas actualizaciones, el intento de MySQL todavía falla porque el servicio vpxd no reconoce MySQL como una base de datos válida.

Sin embargo, a través de algunas herramientas específicas de Linux, descubrí que PostgreSQL es una base de datos válida y la presentaré en el próximo artículo.

Para servidores vCenter basados ​​en GNU/Linux, la compatibilidad con bases de datos de código abierto es imprescindible.