Entwicklungsumgebung/MySQL

Aus Delixs
Zur Navigation springen Zur Suche springen
Uberarbeiten Diese Seite sollte nochmals überarbeitet werden. Eine Begründung befindet sich in der Regel unter Diskussion (oben).


MySQL

Installation mittels:

 aptitude install mysql-common mysql-server

Zuerst das Passwort von "root" für MySQL setzen:

 mysqladmin -u root -p password "MysqlRootPasswort"
 (Enter password: mit RETURN beantworten, da zu Beginn ja noch kein Passwort gesetzt ist)


Werkzeug

Install:

 aptitude install phpmyadmin

Ersteinrichtung:

 Damit phpmyadmin auch dann korrekt arbeitet, wenn Änderungen an der zentralen Konfigurationsdatei von PHP (php.ini)
 vorgenommen werden sollten ist es sinnvoll, in der Datei /etc/phpmyadmin/apache.conf am Ende
 jeweils die Zeilen mit "php_admin_value" einzufügen und die Zeilen mit "php_value include_path"
 entsprechend zu ergänzen. 

 
 
  <IfModule mod_php4.c>
     AddType application/x-httpd-php .php
     php_flag magic_quotes_gpc Off
     php_flag track_vars On
     php_flag register_globals Off
     php_admin_value open_basedir /usr/share/phpmyadmin/:/var/lib/phpmyadmin/:/etc/phpmyadmin
     php_value include_path .:/var/lib/php5
  </IfModule>;
  <IfModule mod_php5.c>
     AddType application/x-httpd-php .php
     php_flag magic_quotes_gpc Off
     php_flag track_vars On
     php_flag register_globals Off
     php_admin_value open_basedir /usr/share/phpmyadmin/:/var/lib/phpmyadmin/:/etc/phpmyadmin
     php_value include_path .:/var/lib/php5
  </IfModule>
  
 Als nächste sollte mit dem Kommando
 
  htpasswd -c /etc/phpmyadmin/htpasswd.setup root schule
  
 das Passwort "schule" für den User "root" auf die Setup-Datei gesetzt werden.
 Jetzt kann durch den Aufruf
 
  https://alix/phpmyadmin/scripts/setup.php
  
 eine Konfigurationsdatei für phpmyadmin erzeugt werden. Debian legt diese Datei nach dem Speichern im Ordner /var/lib/phpmyadmin 
 unter dem Dateinamen config.inc.php an. Im gleichen Ordner sollte dabei auch eine Datei mit den Dateinamen
 blowfish.secret.inc.php entstanden sein. 
 Die Datei /var/lib/phpmyadmin.config.inc.php sollte danach wie folgt aussehen:
 
<?php
/*
 * Generated configuration file
 * Generated by: phpMyAdmin 2.11.8.1deb5 setup script by Michal Čihař <michal@cihar.com>
 * Version: $Id: setup.php 11423 2008-07-24 17:26:05Z lem9 $
 * Date: Sat, 28 Mar 2009 14:50:04 GMT
 */

/* Servers configuration */
$i = 0;

/* Server Alix-Schulserver (http) [1] */
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';
$cfg['Servers'][$i]['auth_type'] = 'http';
$cfg['Servers'][$i]['verbose'] = 'Alix-Schulserver';
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['history'] = 'pma_history';

/* End of servers configuration */

$cfg['UploadDir'] = '/var/www/tmp';
$cfg['SaveDir'] = '/var/www/tmp';
$cfg['AllowAnywhereRecoding'] = true;
$cfg['DefaultCharset'] = 'utf-8';
$cfg['RecodingEngine'] = 'iconv';
$cfg['IconvExtraParams'] = '//TRANSLIT';
?>


 Vor der Nutzung von phpmyadmin fehlt nun nur noch die Einrichtung der zugehörigem Datenbank "phpmyadmin" und des 
 zugehörigen Nutzers "pma" mit dem Password "pmapass" und der zugehörigen Rechte.
 Zur Einrichtung der Datenbank gibt es unter /usr/share/doc/phpmyadmin/examples ein Skript mit den notwendigen SQL-Befehlen.
 Mit den Befehlen
 
  cd /var/lib/phpmyadmin
  gunzip /usr/share/doc/phpmyadmin/examples/create_tables_mysql_4_1_2+.sql.gz
  
 wird diese Datei in das Verzeichnis /var/lib/phpmyadmin ausgepackt. Der Inhalt der Datei lautet:
 
  -- --------------------------------------------------------
-- SQL Commands to set up the pmadb as described in Documentation.html.
--
-- This file is meant for use with MySQL 4.1.2 and above!
-- For older MySQL releases, please use create_tables.sql
--
-- If you are running one MySQL 4.1.0 or 4.1.1, please create the tables using
-- create_tables.sql and upgrade their collation settings according to our
-- manual.
--                                                 
-- This script expects the user pma to already be existing. If we would put a
-- line here to create him too many users might just use this script and end
-- up with having the same password for the controluser.
--                                                     
-- This user "pma" must be defined in config.inc.php (controluser/controlpass)                         
--                                                  
-- Please don't forget to set up the tablenames in config.inc.php                                 
-- 
-- $Id: create_tables_mysql_4_1_2+.sql 9676 2006-11-07 14:16:18Z lem9 $

-- --------------------------------------------------------

-- 
-- Database : `phpmyadmin`
-- 
CREATE DATABASE IF NOT EXISTS `phpmyadmin`
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
USE phpmyadmin;

-- --------------------------------------------------------

-- 
-- Privileges
-- 
-- (activate this statement if necessary)
-- GRANT SELECT, INSERT, DELETE, UPDATE ON `phpmyadmin`.* TO
--    'pma'@localhost;

-- --------------------------------------------------------

-- 
-- Table structure for table `pma_bookmark`
-- 

CREATE TABLE IF NOT EXISTS `pma_bookmark` (
  `id` int(11) NOT NULL auto_increment,
  `dbase` varchar(255) NOT NULL default '',
  `user` varchar(255) NOT NULL default '',
  `label` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '',
  `query` text NOT NULL,
  PRIMARY KEY  (`id`)
)
  ENGINE=MyISAM COMMENT='Bookmarks'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

-- 
-- Table structure for table `pma_column_info`
-- 

CREATE TABLE IF NOT EXISTS `pma_column_info` (
  `id` int(5) unsigned NOT NULL auto_increment,
  `db_name` varchar(64) NOT NULL default '',
  `table_name` varchar(64) NOT NULL default '',
  `column_name` varchar(64) NOT NULL default '',
  `comment` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '',
  `mimetype` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '',
  `transformation` varchar(255) NOT NULL default '',
  `transformation_options` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `db_name` (`db_name`,`table_name`,`column_name`)
)
  ENGINE=MyISAM COMMENT='Column information for phpMyAdmin'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

-- 
-- Table structure for table `pma_history`
-- 

CREATE TABLE IF NOT EXISTS `pma_history` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `username` varchar(64) NOT NULL default '',
  `db` varchar(64) NOT NULL default '',
  `table` varchar(64) NOT NULL default '',
  `timevalue` timestamp(14) NOT NULL,
  `sqlquery` text NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `username` (`username`,`db`,`table`,`timevalue`)
)
  ENGINE=MyISAM COMMENT='SQL history for phpMyAdmin'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

-- 
-- Table structure for table `pma_pdf_pages`
-- 

CREATE TABLE IF NOT EXISTS `pma_pdf_pages` (
  `db_name` varchar(64) NOT NULL default '',
  `page_nr` int(10) unsigned NOT NULL auto_increment,
  `page_descr` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '',
  PRIMARY KEY  (`page_nr`),
  KEY `db_name` (`db_name`)
)
  ENGINE=MyISAM COMMENT='PDF relation pages for phpMyAdmin'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

-- 
-- Table structure for table `pma_relation`
-- 

CREATE TABLE IF NOT EXISTS `pma_relation` (
  `master_db` varchar(64) NOT NULL default '',
  `master_table` varchar(64) NOT NULL default '',
  `master_field` varchar(64) NOT NULL default '',
  `foreign_db` varchar(64) NOT NULL default '',
  `foreign_table` varchar(64) NOT NULL default '',
  `foreign_field` varchar(64) NOT NULL default '',
  PRIMARY KEY  (`master_db`,`master_table`,`master_field`),
  KEY `foreign_field` (`foreign_db`,`foreign_table`)
)
  ENGINE=MyISAM COMMENT='Relation table'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

-- 
-- Table structure for table `pma_table_coords`
-- 

CREATE TABLE IF NOT EXISTS `pma_table_coords` (
  `db_name` varchar(64) NOT NULL default '',
  `table_name` varchar(64) NOT NULL default '',
  `pdf_page_number` int(11) NOT NULL default '0',
  `x` float unsigned NOT NULL default '0',
  `y` float unsigned NOT NULL default '0',
  PRIMARY KEY  (`db_name`,`table_name`,`pdf_page_number`)
)
  ENGINE=MyISAM COMMENT='Table coordinates for phpMyAdmin PDF output'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

-- 
-- Table structure for table `pma_table_info`
-- 

CREATE TABLE IF NOT EXISTS `pma_table_info` (
  `db_name` varchar(64) NOT NULL default '',
  `table_name` varchar(64) NOT NULL default '',
  `display_field` varchar(64) NOT NULL default '',
  PRIMARY KEY  (`db_name`,`table_name`)
)
  ENGINE=MyISAM COMMENT='Table information for phpMyAdmin'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

-- 
-- Table structure for table `pma_designer_coords`
-- 

CREATE TABLE IF NOT EXISTS `pma_designer_coords` (
  `db_name` varchar(64) NOT NULL default '',
  `table_name` varchar(64) NOT NULL default '',
  `x` INT,
  `y` INT,
  `v` TINYINT,
  `h` TINYINT,
  PRIMARY KEY (`db_name`,`table_name`)
)
  ENGINE=MyISAM COMMENT='Table coordinates for Designer'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

 
 Weiterhin wird eine kurze Befehlssequenz gebraucht, die den User "pma" mit dem Passwort "pmapasswd" und den passenden Rechten 
 erstellt.
 Dazu wird im gleichen Ordner eine Textdatei "create_pma_user.sql" angelegt mit folgendem Inhalt:

GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass'; GRANT SELECT ( Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv ) ON mysql.user TO 'pma'@'localhost'; GRANT SELECT ON mysql.db TO 'pma'@'localhost'; GRANT SELECT ON mysql.host to 'pma'@'localhost'; GRANT SELECT (Host, Db, User, Table_name,Table_priv,Column_priv) ON mysql.tables_priv TO 'pma'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost'; CREATE DATABASE IF NOT EXISTS test DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; GRANT USAGE ON test.* TO 'test'@'localhost' IDENTIFIED BY 'test';

Jetzt wird noch ein kurzes Shell-Skript "make_phpmyadmin_db_install" angelegt mit dem Inhalt

#! /bin/bash echo "Erzeuge Datenbank phpmyadmin" mysql -u root -p < create_tables_mysql_4_1_2+.sql echo "Erzeuge User PMA mit nötigen Rechten für PHPMyadmin" echo "und Datenbank test und User test mit Passwort test" mysql -u root -p < create_pma_user.sql

Wird das Script  mit "chmod 700" ausführbar gemacht und per "./make_phpmyadmin_db_install" ausgeführt,
so ist nach Eingabe des bei der Installation des mysql-servers angegebenen Passworts für den Benutzer "root"
die Installation von phpmyadmin abgeschlossen!
phpmyadmin kann nun vom Browser des Clients aus genutzt werden über den Aufruf:

https://alix/phpmyadmin/

Weblinks



zurück | Hauptseite