[fedora] pb mysql

Résolu/Fermé
max-lb - 14 juin 2007 à 11:04
 pisco - 27 mars 2008 à 15:13
Salut !

Je voudrais me connecter à mon serveur mysql en ligne de commande :

[root@localhost /] # mysql -u root


mais il y a une erreur :

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 


Je pense qu'il doit y avoir une erreur de droit car qd j'ouvre le fichier mysql.sock il est vide avec marqué [permission denied]

De plus je voudrais qu'il essaie de se connecter avec le fichier "/opt/lampp/var/mysql/mysql.sock" et non avec le fichier "/var/lib/mysql/mysql.sock" !

Quelqu'un peut-il m'aider ?
Merci
A voir également:

13 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
15 juin 2007 à 09:27
je crois que le problème est là


mysql: /usr/bin/mysql /usr/lib/mysql /usr/include/mysql /usr/share/mysql /opt/lampp/bin/mysql.server /opt/lampp/bin/mysql /usr/share/man/man1/mysql.1.gz

tu as un conflit

quant tu tapes
mysql --......c'est /usr/bin/mysql qui s'exécute donc c'est /etc/my.cnf qui est lu

tu dois taper plûtot
/opt/lampp/bin/mysql .....
pour utiliser ton mysql de lamp

En bref il fallait d'abord désinstaller le mysql de fedora avant d'installer lamp, puisque maintenant c'est un petit bordel chez toi :-))

3
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 472
14 juin 2007 à 20:23
Salut,

beaucoup de posts sur les forums à propos de ce message d'erreur ....et notamment sur fedora !

autres pistes :
- lancer le service mysqld : ./mysqld start
- problème de permissions
- lancer la commande mysql avec l'option --socket=/tmp/mysql.sock (devrait marcher en root).
etc .....

une piste ici (si c'est le cas pour toi) :
I have a solution to this problem. The root cause seems to be within SELinux.
I am using Fedora Core 6 with SELinux, so this should work for all systems with SELinux installed and active.
Root access is required
Select: System - Administration - Security Level and Firewall
Select the SELinux tab and expand Modify SELinux policy, scroll down to SELinux service protection, expand it and check the box for 'Disable SELiunx protection for mysqld daemon'.
After that select: System - Administration - Server Settings - Services and scroll down to background service mysql and click start. The mysql service will start.
or
Log in as root or su in terminal as root and use: /etc/init.d/mysql start.


:-))
2
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
14 juin 2007 à 20:27
Salut,

and check the box for 'Disable SELiunx protection for mysqld daemon'.

avec la précisions que ce n'est pas vraiment une solution si on contourne le problème
normalement il doit fonctionner avec SELinux
0
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 472 > lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019
14 juin 2007 à 20:48
Salut,

avec la précisions que ce n'est pas vraiment une solution si on contourne le problème
normalement il doit fonctionner avec SELinux


tout à fait d'accord avec toi ! :-)
je l'entendais aussi comme ça : comme une rustine en attendant de trouver la solution finale !
D'ailleurs pour un : sa solution a été une réinstallation complète du système et depuis mysql fonctionne normalement !

:-))
0
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 472 > lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019
14 juin 2007 à 21:23
re-,

pour la partie lampp voir ici :
https://forums.mysql.com/read.php?11,27769,147093#msg-147093

:-))
0
Salut, le résultat des commandes que tu m'a données :

autres pistes :
- lancer le service mysqld : ./mysqld start
- problème de permissions
- lancer la commande mysql avec l'option --socket=/tmp/mysql.sock (devrait marcher en root).
etc ..... 


[root@localhost ~]# ./mysqld start 
bash: ./mysqld: Aucun fichier ou répertoire de ce type
[root@localhost ~]# mysql -- socket=/tmp/mysqL.sock
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)


!!!
0
Sinon pour la partie en graphique :

une piste ici (si c'est le cas pour toi) :
I have a solution to this problem. The root cause seems to be within SELinux.
I am using Fedora Core 6 with SELinux, so this should work for all systems with SELinux installed and active.
Root access is required
Select: System - Administration - Security Level and Firewall
Select the SELinux tab and expand Modify SELinux policy, scroll down to SELinux service protection, expand it and check the box for 'Disable SELiunx protection for mysqld daemon'.
After that select: System - Administration - Server Settings - Services and scroll down to background service mysql and click start. The mysql service will start.
or
Log in as root or su in terminal as root and use: /etc/init.d/mysql start.


C'est différent sous fedora 7, j'ai selectionné 'Firewall & SeLinux' , onglet SELinux, et là une seule option :
parametres SELinux (Strict, Permissif, Désactivé) !

2nde partie: 'Services' , onglet services d'arriere plan, mysqld n'est pas dans la liste des services !!!
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
15 juin 2007 à 10:53
Salut,

De rien :-))

Petite précision
dans ce message fedora pb mysql#25

J'ai tapé ta commande :

/opt/lampp/sbin/mysqld --basedir=/opt/lampp --datadir=/opt/lampp/var/mysql --user=nobody --pid-file=/opt/lampp/var/mysql/localhost.localdomain.pid --skip-external-locking --port=3306 --socket=/opt/lampp/var/mysql/mysql.sock


en fait ce n'était pas une commande mais un copier/coller d'un résultat des commandes que je t'ai demandé
mais c'est vrai que je ne l'ai pas precisé. désolé

1
En tout cas ça marche et c'est nickel !!!!!!!
Sa fait 3 semaines que je suis sur l'install Nagios-Oreon et on dirait que je vais bientot en voir le bout !
Je l'aurais !
0
j'ai essayé la commande suivante :

/opt/lampp/var/mysql/mysql.sock -u root


Il apparait bien que c'est un probleme de droit :

bash: /opt/lampp/var/mysql/mysql.sock: Permission non accordée


Je n'arrive pas à accéder au fichier mysql.sock meme après un
chmod 777 mysql.sock

Comment faire pour le régler ?

Merci de m'aider
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
14 juin 2007 à 11:47
Salut,

Puisqu'il cherchel le fichier ici
'/var/lib/mysql/mysql.sock'


et pas dans /opt

Affiche ton fichier de configuration
0
je vieux bien mais le fichier de config est où et qu'est-ce qu'il faut que j'en fasse ! :)
0
Deplus quand je regarde dans /var/lib/ il n'y a aucun repertoire 'mysql' il ne le trouvera donc jamais !
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
14 juin 2007 à 11:59
Cherche le fichier my.cnf
Il est normalement dans /etc/
tu l'ouvres avec un editeur de text et tu fais un copier/coller ici
0
Ok je l'ai trouvé il était bien dans /etc

mais j'ai pas très bien compris ce que tu veut que je fasse avec !
je l'ai ouvert avec vi :

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
14 juin 2007 à 12:10
mets un # avant cette ligne
socket=/var/lib/mysql/mysql.sock

et écrit celle ci
socket=/opt/lampp/var/mysql/mysql.sock


donc tu dois avoir comme ça

#socket=/var/lib/mysql/mysql.sock
socket=/opt/lampp/var/mysql/mysql.sock



0
J'ai commenter la ligne et créee l'autre.
Mais toujours la meme erreur :
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 


Il continue à chercher dans /var/lib/mysql/mysql.sock
en mettant la commande suivante :
/opt/lampp/var/mysql/mysql.sock -u root 

Je luis specifie le chemin donc il cherche bien dans /opt/lampp/var/mysql/ ,
mais il me refuse l'entrée :
bash: /opt/lampp/var/mysql/mysql.sock: Permission non accordée

tout comme quand je me place dans le repertoire :

/opt/lampp/var/mysql/
vi mysql.sock 


entreé dans le fichier :
--------------------------------------------------
~
~
~
"mysql.sock" [Permission Denied]
--------------------------------------------------

fichier vierge !
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
14 juin 2007 à 12:31
affiche
grep mysql /etc/passwd
--
lami20j
0
j'ai tapé ta commande mais je ne voit pas de résultat !
Que doit faire cette commande ?
0
max-lb > max-lb
14 juin 2007 à 13:55
Je ne comprends pas où tu veut en venir !

merci de ta patience car je boss depuis peu sous linux et j'ai encore pas mal de diffficulté ! :-)
0
max-lb > max-lb
14 juin 2007 à 14:15
Je viens de m'apercevoir que j'avais un second fichier my.cnf .
Il est dans le répertoire /opt/lampp/etc/
mais il est différent de l'autre ! Je ne sais pas si c'est normal qu'il y est un autre, en plus il est différent :

# Example MySQL config file for medium systems.
#
# This is for a system with little memory (32M - 64M) where MySQL plays
# an important part, or systems up to 128M where MySQL is used together with
# other programs (such as a web server)
#
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is /opt/lampp/var/mysql) or
# ~/.my.cnf to set user-specific options.
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.

# The following options will be passed to all MySQL clients
[client]
#password       = your_password
port            = 3306
socket          = /opt/lampp/var/mysql/mysql.sock

# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port            = 3306
socket          = /opt/lampp/var/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking
# Replication Master Server (default)
# binary logging is required for replication
# log-bin deactivated by default since XAMPP 1.4.11
#log-bin=mysql-bin

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id       = 1

# Replication Slave (comment out master section to use this)
#
# To configure this host as a replication slave, you can choose between
# two methods :
#
# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
#    the syntax is:
#
#    CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
#    MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
#
#    where you replace <host>, <user>, <password> by quoted strings and
#    <port> by the master's port number (3306 by default).
#
#    Example:
#
#    CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
#    MASTER_USER='joe', MASTER_PASSWORD='secret';
#
# OR
#
# 2) Set the variables below. However, in case you choose this method, then
#    start replication for the first time (even unsuccessfully, for example
#    if you mistyped the password in master-password and the slave fails to
#    connect), the slave will create a master.info file, and any later
#    change in this file to the variables' values below will be ignored and
#    overridden by the content of the master.info file, unless you shutdown
#    the slave server, delete master.info and restart the slaver server.
#    For that reason, you may want to leave the lines below untouched
#    (commented) and instead use CHANGE MASTER TO (see above)
# required unique id between 2 and 2^32 - 1
# (and different from the master)
# defaults to 2 if master-host is set
# but will not function as a slave if omitted
#server-id       = 2
#
# The replication master for this slave - required
#master-host     =   <hostname>
#
# The username the slave will use for authentication when connecting
# to the master - required
#master-user     =   <username>
#
# The password the slave will authenticate with when connecting to
# the master - required
#master-password =   <password>
#
# The port the master is listening on.
# optional - defaults to 3306
#master-port     =  <port>
#
# binary logging - not required for slaves, but recommended
#log-bin=mysql-bin
# Point the following paths to different dedicated disks
#tmpdir         = /tmp/
#log-update     = /path-to-dedicated-directory/hostname

# Uncomment the following if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 10000

# Comment the following if you are using InnoDB tables
skip-innodb
innodb_data_home_dir = /opt/lampp/var/mysql/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /opt/lampp/var/mysql/
innodb_log_arch_dir = /opt/lampp/var/mysql/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout


Voilà ce que donne ce second my.conf !
C'est grave docteur ? :-)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
14 juin 2007 à 18:26
Non, ce n'est pas grave :-)
Tu dois avoir un conflit entre 2 installations de mysql

affiche
ps aux | grep mysql
whereis mysql{,d}

Je ne comprends pas où tu veut en venir !
Moi, oui :-))
Je veux savoir sous quel utilisateur le daemon mysqld est demarré
Enfin affiche ce que je te demande et je vais voir ce que je peux faire
Ensuite je vais t'expliquer (bien sûr si j'arrive à te depanner :-))
0
Bonjour !

voilà le resultat des commandes
ps aux | grep mysql

whereis mysql{,d}


[root@localhost ~]# ps aux | grep mysql
root      1994  0.0  0.1   4036   760 pts/1    S+   08:08   0:00 grep mysql
root     29746  0.0  0.2   4636  1168 ?        S    Jun14   0:00 /bin/sh /opt/lampp/bin/mysqld_safe --datadir=/opt/lampp/var/mysql --pid-file=/opt/lampp/var/mysql/localhost.localdomain.pid
nobody   29779  0.0  0.7  26500  3880 ?        Sl   Jun14   0:00 /opt/lampp/sbin/mysqld --basedir=/opt/lampp --datadir=/opt/lampp/var/mysql --user=nobody --pid-file=/opt/lampp/var/mysql/localhost.localdomain.pid --skip-external-locking --port=3306 --socket=/opt/lampp/var/mysql/mysql.sock
[root@localhost ~]# whereis mysql{,d}
mysql: /usr/bin/mysql /usr/lib/mysql /usr/include/mysql /usr/share/mysql /opt/lampp/bin/mysql.server /opt/lampp/bin/mysql /usr/share/man/man1/mysql.1.gz
mysqld:
[root@localhost ~]# 


Je ne voit pas trop ce que cela siginfie mais voila ! :-)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
15 juin 2007 à 09:34
0:00 /opt/lampp/sbin/mysqld --basedir=/opt/lampp --datadir=/opt/lampp/var/mysql --user=nobody --pid-file=/opt/lampp/var/mysql/localhost.localdomain.pid --skip-external-locking --port=3306 --socket=/opt/lampp/var/mysql/mysql.sock


D'ailleurs on vois ben que le daemon fonctionne essaie cette commande et affiche le résultat
/opt/lampp/bin/mysql -u root -p
--
lami20j
0
J'ai tapé ta commande :

/opt/lampp/sbin/mysqld --basedir=/opt/lampp --datadir=/opt/lampp/var/mysql --user=nobody --pid-file=/opt/lampp/var/mysql/localhost.localdomain.pid --skip-external-locking --port=3306 --socket=/opt/lampp/var/mysql/mysql.sock


resultat :

070615  9:38:10 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
070615  9:38:10 [ERROR] Do you already have another mysqld server running on port: 3306 ?
070615  9:38:10 [ERROR] Aborting

070615  9:38:10 [Note] /opt/lampp/sbin/mysqld: Shutdown complete


Je dirais que ya un petit probleme !!! :-)

Pour la seconde la commande marche sans le
-p


Merci ça marche !
Le probleme est résolu !
Mais pourrais tu m'expliquer pourquoi ça marche maintenant alors que avant non ?
Parceque j'avais déjà tapé cette commande avant et ça ne marchait pas !
Quelle est la commande qui a modifiée ma config de my sql ?
0
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 472
15 juin 2007 à 09:38
Bonjour tout le monde,

Je vois qu'on s'approche de la solution .......

:-))
0
C'est bon je suis rentré dans mysql !!!

[root@localhost ~]# /opt/lampp/bin/mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.0.41 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> 


Mais j'ai un tout petit probleme encore ...

Je veux utilisé la commande suivante :
GRANT ALL PRIVILEGES ON nagios.* TO 'nagios@localhost identified by 'P@SSWORD';

puis quitter mysql.

seulement une fois la commande tapée je ne retourne pas comme prévu sur le prompt
mysql> 

mais je tombe sur le prompt
    '>   
!
Que dois-je faire dans ce prompt et comment le quitter, lui et mysql ?
0
Euh en fait c'est bon, pour le probleme sur le prompt car quand j'ai tapé la commande :
GRANT ALL PRIVILEGES ON nagios.* TO 'nagios@localhost identified by 'P@SSWORD';

J'avais oublié une cote :
 'nagios'@localhost 


meci beaucoup de votre patience à tous pour m'aider à resoudre ce probleme et plus particulièrement à lami20j pour son aide très précieuse !
0
bonjour tt le monde je suis debutant en linux et la jai fait un script pour aceder a ma base de donnée le script marche sous windows mais ne sexecute pas sous linux et je demande de l'aide voici le script
<?php
$base = mysql_connect (192.168.1.230, 'root', 'mot de passe du root');
mysql_select_db ('bea', $base) or die ("erreur de connexion base");
?>
0