Banner
Banner
Banner

[Concours] Gagnez votre Hexbug

août 26th, 2010

Vous vous souvenez, il y a quelques semaines je testais 2 Hexbugs, ces robots insectes super funs. Et bien je vous propose aujourd’hui de les gagner via un jeu concours!

P1020216

Le principe du jeu est simple : prenez une photo du site Geek de France sur un terminal quel qu’il soit (téléphone, PC fixe, portable, etc.). Envoyez-moi cette photo par mail à l’adresse timcruz@geekdefrance.fr. Les 2 photos les plus insolites (ne m’envoyez pas tous une photo de vos WC, ce n’est pas si insolite que ça!) seront sélectionnées et un hexbug sera envoyé à leurs auteurs. L’ensemble des photos seront ensuite publiées (sauf demande particulière de votre part) sur Geek de France.

Par exemple, vous pouvez prendre une photo de votre téléphone portable qui est en train d’afficher Geek de France pendant que vous faites un saut en parachute (je sais c’est une photo hautement improbable mais c’est pour expliquer)

Si vous n’êtes pas retenu, rien n’est perdu : quelques jours après la fin de ce premier concours, un second sera lancé, cette fois par tirage au sort. Ceux qui auront envoyé une photo seront comptés 2 fois et auront donc 2 fois plus de chance de gagner lors du tirage au sort!

Pour rappel , voici une galerie photo et une vidéo des hexbugs à gagner :

[nggallery id=10]

 

 

La durée du concours est de 3 semaines. Le 30 Aout 2010, je désignerai le nom des gagnants.

Cathegorie(s): Divers

[TUTO] Interagir sur une base MySQL sous Linux avec un client Microsoft .net

août 26th, 2010

mysql

Nous avons déjà vu ensemble comment interagir avec une base de données Microsoft SQL depuis PHP sous Linux. Je vous propose aujourd’hui de voir l’inverse : comment depuis un client Microsoft Windows exécutant du code .net interagir avec un base de donnée MySQL installé sur un serveur Linux (Ubuntu dans mon cas).

Pour l’exemple, j’interagirai avec ma base MySQL depuis un script powershell (exécuté sur un poste Windows)  mais la méthode est la même (à quelques subtilités de langage près pour l’ensemble des langage .net).

 

Du coté Microsoft : script powershell

dotnet

Nativement, .net ne gère pas les connexion MySQL. Toutefois, on peut lui adjoindre une bibliothèque nommée MySQL Connector /Net, qui se télécharge ICI. Une fois cette bibliothèque installée sur votre poste, il ne reste plus qu’à la charger dans votre script par cette ligne :

[void][System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")

A présent on peut se connecter à un serveur MySQL. Par défaut, la connexion se fait via le port 3306. Il faut alors définir le serveur, la base de donnée, le compte mysql et son mot de passe :

$port = "3306"

$srv= "ipduserveur"

$user = "comptemysql"

$mdp = "mdpmysql"

$bdd = "bddmysql"

Puis on lance la connexion :

$connection = New-Object MySql.Data.MySqlClient.MySqlConnection

$connection.ConnectionString = “server=$srv;port=$port;uid=$user;pwd=$mdp;database= bdd;Pooling=False”

$connection.Open()

Il ne reste plus qu’à définir et exécuter sa requête SQL :

$Requete = "select * from tablemySQL"

$command = New-Object MySql.Data.MySqlClient.MySqlCommand($Requete, $connection)

On va maintenant récupérer le tout dans un tableau :

$dataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($command)

$DataSet = new-object System.Data.DataSet

$DataAdapter.Fill($DataSet)

$tableauSQL = $DataSet.Tables[0].Rows

Maintenant affichons chaque résultat de ce tableau :

Foreach ($elements in $tableauSQL)

{

$donnee= "$($elements.donneeSQL)"

write-host $donnee

}

Une fois nos données récupérées, on ferme la connexion :

$connection.Close()

script

Facile n’est ce pas? Toutefois, pour pouvoir se connecter, une subtilité persiste dans la configuration Linux.

 

Du coté GNULinux : paramétrage des accès

Mon serveur Linux est un Ubuntu sur lequel est installé phpmyadmin. Lors de mes premières connexions via le script powershell, j’ai été confronté à cette erreur :

Unable to connect to any of the specified MySQL hosts

erreurmysqldotnet

Ce message peut être la conséquence de plusieurs causes. Peut-être les variables définies pour la connexion (serveur,base de donnée, compte mysql et mot de passe) ne sont pas bonnes. Si vous êtes certain de celles-ci, peut-être n’avez vous pas les autorisations pour vous connecter à votre base SQL en 3306.

Si on vérifie avec nmap (nmap -p 3306 ipduserveur), on est vite fixé : le port 3306 semble. Pour, pouvoir se connecter il faut alors modifier le fichier /etc/mysql/my.cnf de sorte qu’il contienne la ligne :

bind-address = x.x.x.x

x.x.x.x étant l’adresse ip de l’interface sur laquelle MySQL doit écouter. Vous pouvez mettre 0.0.0.0 pour que MySQL écoute les connexions venant de toutes les interfaces réseaux. Il sera donc totalement accessible mais cela est dangereux si votre serveur est connecté à Internet directement. (à ce sujet cf. ICI) Dans mon cas j’ai mis l’adresse IP de mon serveur sur le LAN.

La modification du fichier my.cnf peut être faite directement en ligne de commande avec l’utilitaire vi (avec la commande sudo vi /etc/mysql/my.cnf):

modifmycnf

Ou encore avec un éditeur graphique comme gedit (avec la commande sudo gedit /etc/mysql/my.cnf).

Puis, redémarrez MySQL avec la commande sudo /etc/init.d/mysql restart :

restartmysql

A partir de là, vous pourrez normalement vous connecter sans encombre à votre serveur MySQL sous Linux depuis un client sous Microsoft Windows en .Net.

sql

Là encore, nous avons l’illustration de la possibilité d’interopérabilité des systèmes Windows et Linux. Cela n’est pas sans difficulté mais ça reste possible. A vous de jouer maintenant!

Cathegorie(s): Software, Tutos