PDA

Visualizza versione completa : [SUSE] 9 - Mysql stò maledetto!


Alder
15-09-2004, 17.09.27
Ciao a tutti!
Dopo un lungo periodo di astinenza da linuz mi sono deciso a riprovare questo os e ad installarlo sul portatile ke uso solo per programmare (principalmente in php).
Installo l'os senza problemi, configuro tutto, ma non sono in grado di configurare mysql ke nn vuole saperne di partire.
O meglio... non ho idea di come far pertire il demone... ho provato con "mysqld start" ma mi restituisce un errore.
Qualcuno di voi che ha giò installato mysql mi saprebbe aiutare indicandomi come procendere?
Grazie

Alder

Alder
15-09-2004, 17.16.04
Dimenticavo... l'errore è questo, se può servire...


#2002 - Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

Pensavo a un problema di permessi... ma il file neppure esiste :confused: ...

Alder

Eteria
16-09-2004, 04.08.56
Io lo uso su Suse8.0 e Suse9.1, ho provato pure su Suse9.0 e funziona senza problemi, anzi m'è sempre sembrato uno dei servizi più stabili e semplici inclusi nella distribuzione da configurare ...
Per prima cosa posso consigliarti di verificare con YAST che sia il server che il client siano installati, se ci sono puoi andare con la console in /etc/init.d e lanciare il servizio manualmente da li (devi essere loggato come root):
cd /etc/init.d/
./mysql start
Fatto questo puoi con il client che preferisci tentare di connetterti.
Se vedi che tutto funziona correttamente e sei interessato ad avere il servizio in questione funzionante ogni volta che accendi il Pc, apri da YAST il pannello chiamato "Editor dei Runlevel" e configura a quale runlevel vuoi che il servizio venga avviato (ti consiglio runlevel 5).

AUGURI!!!

Alder
18-09-2004, 10.54.16
Ciao!

Allora, siccome pensavo ci fossero dei problemi con la versione contenuta nel cd di installazione della SUSE, ho scaricato gli rpm di mysql 4.0 dal sito di mysql e li ho intallati.
Subito dopo l'installazione il db funzionava e sono riuscito a creare un paio di tabelle ed eseguire un paio di query.
Tempo di un riavvio e tutto KO nuovamente.
Adesso però penso di aver scoperto dove sta il problema:

Se mi loggo come root e lancio il comandomysqld start mi viene restituito il seguente errore:


linux:/home/alder # mysqld start
040918 9:48:26 Warning: Asked for 196608 thread stack, but got 126976
Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
040918 9:48:26 Aborting

040918 9:48:26 mysqld: Shutdown Complete



Ho cercato nel reference manual di mysql e ho trovato questo :

If MySQL can't open enough files or connections, it may be that you haven't configured Linux to handle enough files.

In Linux 2.2 and onward, you can check the number of allocated file handles as follows:

shell> cat /proc/sys/fs/file-max
shell> cat /proc/sys/fs/dquot-max
shell> cat /proc/sys/fs/super-max

If you have more than 16MB of memory, you should add something like the following to your init scripts (for example, `/etc/init.d/boot.local' on SuSE Linux):

echo 65536 > /proc/sys/fs/file-max
echo 8192 > /proc/sys/fs/dquot-max
echo 1024 > /proc/sys/fs/super-max

You can also run the echo commands from the command line as root, but these settings will be lost the next time your computer restarts.

Alternatively, you can set these parameters on startup by using the sysctl tool, which is used by many Linux distributions (SuSE has added it as well, beginning with SuSE Linux 8.0). Just put the following values into a file named `/etc/sysctl.conf':

# Increase some values for MySQL
fs.file-max = 65536
fs.dquot-max = 8192
fs.super-max = 1024

You should also add the following to `/etc/my.cnf':

[mysqld_safe]
open-files-limit=8192

This should allow the server a limit of 8,192 for the combined number of connections and open files.

The STACK_SIZE constant in LinuxThreads controls the spacing of thread stacks in the address space. It needs to be large enough so that there will be plenty of room for each individual thread stack, but small enough to keep the stack of some threads from running into the global mysqld data. Unfortunately, as we have experimentally discovered, the Linux implementation of mmap() will successfully unmap an already mapped region if you ask it to map out an address already in use, zeroing out the data on the entire page instead of returning an error. So, the safety of mysqld or any other threaded application depends on ``gentlemanly'' behavior of the code that creates threads. The user must take measures to make sure that the number of running threads at any time is sufficiently low for thread stacks to stay away from the global heap. With mysqld, you should enforce this behavior by setting a reasonable value for the max_connections variable.


Però nonostante i consigli che mi vengono dati continua a non funzionare ugualmente.
Penso sia un problema della dimensione dello stack, ma non so come aumentarla...
Mi sapreste aiutare?!

Alder

p.s.
Non risultano presenti i file echo 8192 > /proc/sys/fs/dquot-max
echo 1024 > /proc/sys/fs/super-max che possa dipendere da quello?
Ho dimenticato di installare qualcosa?!?!

Eteria
19-09-2004, 19.42.21
Azzz stai cominciando a entrare in particolari dove sono troppo niubbo e non so aiutarti.