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
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
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';
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
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
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
$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>';
?>
<%
'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
%>
Zur Linux Startseite home.icewolf.ch/linux/ | Copyright © 2002 - Andres Bohren Icewolf Software | W3C Konforme Seite check