MySQL


Zurück zur Linux Startseite

Inhalt


Einleitung MySQL

Dieses Dokument beschreibt kurz wie ein MySQL Server aufgesetzt wird. In diesem Dokument halte ich meine Erfahrungen fest.

MySQL Server ist ein Datenbank Server welcher mit der SQL Syntax (SQL = Structured Query Language) abgefragt werden kann. Weitere Infos findet man unter www.mysql.com

top.gifZurück zum Inhalt


Download und Kompilieren

Die Software kann unter http://www.mysql.com/downloads/ heruntergeladen werden.

Ich beforzuge den Sourcecode, welchen ich dann selber kompilieren kann. Also das aktuelle *.tar.gz File herunterladen und los gehts...

bash> tar -xzf mysql-3.23.52.tar.gz
bash> cd mysql-3.23.52
bash> ./configure --prefix=/usr/local/mysql
bash> make
bash> make install

Wenn Ihr beim configure Fehler erhaltet, dann schaut nach ob ihr die Packete 'ncurses' und 'termcap' installiert habt. Wenn nicht, so holt dies halt nach!

DB Files liegen unter /var/lib/mysql
Config: /etc/my.conf und mysqlaccess.conf

Die meisten Programme, welche auf eine MySQL Datenbank zugreifen tun dies unter Unix via den sogenannten UNIX Socks. Es gibt also ein File /var/tmp/mysql.sock über welches die Programme (wie z.B. PHP) daten abfragen. Falls es dort keine solche Datei gibt, ermittelt den Pfad und macht dort mit dem untenstehenden Befehl einen Symbolischen Link auf die richtige Datei!

bash> cd /var/tmp/
bash> ln -s $path mysql.sock

top.gifZurück zum Inhalt


User und Berechtigung

Jetzt kommen wir zu einem wichtigen Teil - der Userverwaltung von MySQL.
ACHTUNG der User 'root' hat zurzeit KEIN Passwort, was eine erhebliche Sicherheitslücke darstellt.

bash> mysql --user=root mysql mysql> SET PASSWORD FOR root@localhost=PASSWORD('new_password');

Jetzt erzeugen wir einen neuen User mit entsprechendem Passwort. Dabei müssen wir seine IP Adresse wissen. Im untenstehenden Fall erzeugen wir einen User 'boa' mit dem Passwort 'bingo' welcher seine Querys von der IP 172.21.175.105 erzeugt.

mysql> GRANT ALL PRIVILEGES ON db.table TO username@remote_host IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON *.* TO boa@172.21.175.105 IDENTIFIED BY 'bingo';

top.gifZurück zum Inhalt


mysqlshow

Mysqlshow ist ein Tool um die DB- und Tabellenstruktur anzuzeigen. Die genaue Syntax ist im Beispiel unten.

bash> mysqlshow -u boa -pbingo DB TABELLE FELD

top.gifZurück zum Inhalt


MySQL Client

Um überhaupt mal eine SQL abfrage auf der DB zu machen, gibt es den MySQLclient welcher in der Konsole mit 'mysql' aufgerufen wird. Mit -u wird der User angegeben. Mit dem Parameter -p wird das Passwort mitgegeben. Der Paramameter -e steht für 'execute' - also den SQL befehl auszuführen.

Untenstehendes Beispiel gibt alle felder der Tabelle 'users' aus der Datenbank 'mysql' zurück.

bash> mysql -u boa -pbingo -e "select * from users" mysql

Untenstehendes Beispiel ändert die falsche Emailadresse auf eine gültige Adresse.

bash> mysql -u boa -pbingo -e "UPDATE guestbook SET PosterEmail='th.balmer@bluemail.ch' where PosterEmail='th.balmer@bluemail'" fun

top.gifZurück zum Inhalt


Datenbank erstellen

Wir erstellen nun also eine neue Datenbank.

Datenbank anlegen: mysql -u root -ppassword -e "CREATE DATABASE db_name;"

Wir erstellen nun also eine neue Tabelle in der erzeugten Datenbank.

Tabelle anlegen: mysql -u boa -pbingo -e "create table tbl_name (feld1 TYP, feld2 TYP);" db_name
(TYP kann z.B. INTEGER sein)


PHP Beispiel

<?php
$conn = mysql_connect(localhost,'boa', 'bingo');
mysql_select_db("fun");
$result = mysql_query("SELECT * FROM funbase ORDER by Datum DESC");

echo '<table border="0" cellspacing="0" width="670">';
echo '<tr class="TitelIce">';
echo '<td>Artikel</td><td>Poster</td><td>Email</td><td>Website</td>';

while($row = mysql_fetch_row($result)) {
echo '<tr class="HintergrundGrau"><td>';
echo '<a href="fun_detail.php?ID=' . $row[0] . '">' . $row[4] . '</a><td>' . $row[1] . '</td><td><a href="mailto:' . $row[2] . '">' . $row[2] . '</a></td><td><a href="' . $row[3] . '" target="_Website">' . $row[3] . '</a>';
echo '</td><td>';
$abc = $abc + 1;
}

echo '</td></tr>';
echo '</table>';

// schliessen der Verbinung
mysql_close($conn);

echo '<p>Datensätze:' . $abc .'</p>';
?>

top.gifZurück zum Inhalt


ASP Beispiel

<%
'Fehlerbehandlung einschalten
On Error resume next

'Zusammenstellen des gesamten Verbindungsstrings
Dim strComplete
strComplete = "DRIVER=MySQL;SERVER=62.65.148.102;UID=boa;PWD=bingo;DATABASE=fun;"

'Öffnen der Datenbankverbindung
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.open strComplete

'Fehlerbehandlung auschalten
On Error goto 0

'Auf Fehler im Verbindungsaufbau prüfen
IF objConn.Errors.Count <> 0 then
Response.write "<p class='red'>SMS Database status: Die SMS Datenbank ist zurzeit nicht verfügbar</p>"
else
mSQL="SELECT COUNT(*) FROM sms"

Set rsTemp = Server.CreateObject("ADODB.Recordset")
rsTemp.Open mSQL, objConn

Response.write "SMS Database status: " amp; rsTemp(0) amp; " Einträge <a href='javascript:document.sms_search.submit()'>Alle zeigen</a>"

rsTemp.close
set rsTemp=nothing

objConn.Close
Set objConn = Nothing
End if
%>

top.gifZurück zum Inhalt


Zur Linux Startseite home.icewolf.ch/linux/ | Copyright © 2002 - Andres Bohren Icewolf Software | W3C Konforme Seite check