miércoles, abril 04, 2007

Asp.net usando MySQL en Linux con Mono

Una vez que esta instalado mono y ya esta funcionando asp.net en linux, conforme al post Mono en un VDS de Godaddy.

Vamos a realizar un par de modificaciones al ejemplo de base de datos que viene por omision en la carpeta de pruebas (test), para que se pueda accesar a MySQL con los archivos dbpage1.aspx, dbpage2.aspx:

Resulta que los ejemplos que trae esta instalacion de mono es con un servidor PostgreSQL, asi que para nuestro caso que usamos MySQL tenemos que cambiar los archivos de configuracion de la aplicacion, en particular el web.config: 

<appSettings>
.
.
.
<add key="DBProviderAssembly"
value="ByteFX.Data"/>
<add key="DBConnectionType"
value="ByteFX.Data.MySqlClient.MySqlConnection"/>
<add key="DBConnectionString"
value="server=127.0.0.1;user id=xxxx;password=xxxxx;database=xxxxx"/>
.
.
.
</appSettings>

Con lo anterior le decimos a nuestra aplicacion que use el conector ByteFX para hacer uso de MySQL. Este provider ya viene de forma estandar en la instalacion de mono.

Creamos nuestra base de datos en MySQL con:

CREATE TABLE `test` (
`person` text character set utf8 collate utf8_spanish_ci NOT NULL,
`email` text character set utf8 collate utf8_spanish_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE `customers` (
`id` INT( 8 ) NOT NULL ,
`name` VARCHAR( 256 ) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL ,
`address` VARCHAR( 256 ) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;

 Una vez creadas las tablas en MySQL ejecutamos los archivos:

dbpage1.aspx

dbpage2.aspx

Listo!

2 comentarios:

Anónimo dijo...

Estimado:

Tengo una inquietud y quería ver si podías darme algun consejo.

Estoy arrendando hosting para mi portal (ASP.NET 2.0), y quería migrar a DNN 4.X + MySQL 4 como base de datos.

Como debiera modificarse el archivo web.config para soportar MySql 4 ????

vgarcias dijo...

No aclaraste si el hospedaje es en windows o linux.
De cualquier manera, aqui va.
En windows se puede hacer de varias maneras, es decir:
Usando el Provider de MySQL http://dev.mysql.com/downloads/connector/net/5.0.html

Agregando una conexion ODBC desde el panel de control
Utilizando OleDB (http://sourceforge.net/projects/myoledb/)

Ahora debes agregar las cadenas de conexion segun corresponda:http://msdn2.microsoft.com/es-es/library/ms178411(VS.80).aspx

En cuanto a linux, estoy basandome en la documentacion de http://www.mono-project.com/Guide:_Porting_ASP.NET_Applications
Listo!