Ich hab hier einen Linux-Rechner, der nur eingeschränkt über das Netzwerk nach außen surfen darf. Netzwerkadmin lässt nicht alle Webseiten zu. Auf dem Rechner läuft MySQL und ich möchte auf diesem Rechner mit perl + DBI auf die Datenbank zugreifen.
Nun hab ich mir
eure Wiki-Seite dazu durchgelesen. Über einen zweiten Rechner hab ich mir von CPAN die Module
* DBI-1.622.tar.gz
* ExtUtils::MakeMaker
* Test::Simple
* DBD-mysql
geholt und auf den Rechner ohne Internet rüberkopiert. Installation funktionierte glatt bei den ersten 3 Modulen.
1. Frage:
Wie kann ich sehen, welche Module ich alles brauche um das DBI-Modul zum laufen zu bekommen? Erst beim Befehl
perl Makefile.PL krieg ich ja die Info das irgendein anderes Modul noch fehlt. Und dann muss ich erneut suchen gehen und rüberkopieren. Bei Befehlen wie
sudo apt-get install libcurses-perl werden ja so schön die Abhängigkeiten aufgelöst, aber da brauch ich ja Netzzugriff. Gibt es da einen einfacheren Weg, wenn der Rechner kein Internet hat?
2. Frage:
Nachdem ich die ersten 3 Module installiert hatte, starte ich mein einfaches perl-skript für Zugriff auf MySQL und bekomme eine Fehlermeldung
my $dbh = DBI->connect( 'dbi:mysql:information_schema',
'root',
'password',)
bekomme ich folgende Fehler:
install_driver(mysql) failed: Can't locate DBD/mysql.pm ...
Perhaps the DBD::mysql perl module hasn't been fully installed
DBD-mysql
Also hab ich noch das Modul
DBD-mysql geholt, das krieg ich aber nicht installiert.
1. Versuch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[root@lehrpc DBD-mysql-4.022]# perl Makefile.PL
Can't exec "mysql_config": No such file or directory at Makefile.PL line 83.
Cannot find the file 'mysql_config'! Your execution PATH doesn't seem
not contain the path to mysql_config. Resorting to guessed values!
Can't exec "mysql_config": No such file or directory at Makefile.PL line 479.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Can't exec "mysql_config": No such file or directory at Makefile.PL line 479.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Can't exec "mysql_config": No such file or directory at Makefile.PL line 479.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
PLEASE NOTE:
For 'make test' to run properly, you must ensure that the
database user 'root' can connect to your MySQL server
and has the proper privileges that these tests require such
as 'drop table', 'create table', 'drop procedure', 'create procedure'
as well as others.
mysql> grant all privileges on test.* to 'root'@'localhost' identified by 's3kr1t';
You can also optionally set the user to run 'make test' with:
perl Makefile.PL --testuser=username
Can't exec "mysql_config": No such file or directory at Makefile.PL line 479.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Can't exec "mysql_config": No such file or directory at Makefile.PL line 479.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Can't exec "mysql_config": No such file or directory at Makefile.PL line 479.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Failed to determine directory of mysql.h. Use
perl Makefile.PL --cflags=-I<dir>
to set this directory. For details see the INSTALL.html file,
section "C Compiler flags" or type
perl Makefile.PL --help
2. Versuch
perl Makefile.PL --testuser=root --testpassword=geheim --mysql_config=/etc/my.cnf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@lehrpc DBD-mysql-4.022]# perl Makefile.PL --testuser=root --testpassword=geheim --mysql_config=/etc/my.cnf
Can't exec "/etc/my.cnf": Permission denied at Makefile.PL line 479.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Can't exec "/etc/my.cnf": Permission denied at Makefile.PL line 479.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Can't exec "/etc/my.cnf": Permission denied at Makefile.PL line 479.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Can't exec "/etc/my.cnf": Permission denied at Makefile.PL line 479.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Failed to determine directory of mysql.h. Use
perl Makefile.PL --cflags=-I<dir>
to set this directory. For details see the INSTALL.html file,
section "C Compiler flags" or type
perl Makefile.PL --help
Hmm, nun weiß ich nicht mehr weiter. Ich arbeite als root und bin Eigentümer der Datei /etc/my.cnf. Außerdem was soll man bei cflags angeben?
Hoffe, jemand von euch kann mir da weiterhelfen. Danke im Voraus.