Connection à MySQL impossible hors root

sabearts

Membre confirmé
2 Février 2006
62
4
operating room
Bonjour à tous,
j'ai installé MySQL standard 4.0.11 -gamma sur mon mac (installation automatique, .dmg), et c'est installé, je peux me connecter par PHP en faisant mysql_connect('localhost', 'root', '') car évidemment pour cet user il n'y a pas de mot de passe. Mais deux problèmes se posent quand même:
1° il m'est impossible dans le terminal d'aller voir dans le dossier auto-créé /usr/local/mysql/data car le dossier data m'est interdit (access denied) et ce pour une raison totalement inconnue, d'ailleurs son icône comporte un 'sens interdit'. Un CHMOD-R m'est interdit aussi (permission denied).
2° cela en découle sans doute, mais impossible de lancer mysql_install_db d'aucune manière que ce soit, en fait tout ce que je veux faire avec mysql m'est interdit, je n'y comprends rien. Donc, je suis concé, pas moyen de m'autenthifier, de choisir un mot de passe, d'en assigner aux comptes d'origine...

D'où vient ce défaut d'accès, comment le corriger?

Merci,
S
:mouais: :mouais: :mouais:
 
Dans le terminal tu dois
1- taper cd /usr/local/mysql
2- tape sudo chown -R mysql data/, entre ton mot de passe administrateur.
3- Pour démarrer le serveur, tape sudo echo
4- tape sudo ./bin/mysqld_safe &

Ensuite tu peux lire le manuel pour la gestion des comptes


Tiens nous au courant :)

Marc-André
 
Merci Marc-André,
j'ai fait cela en suivant tes conseils, mais sans effet sauf me marquer [1] 450, mais le fichier data m'est toujours interdit, la demande mysql_install_db m'est toujours interdite aussi (access denied)

et voilà ce qui se passe si je veux changer un mot de passe:

[monordinateur:~] monnom% /usr/local/mysql/bin/mysqladmin -u root password <password>
Missing name for redirect.

Le répertoire mysql dans la page phpinfo() m'indique:

ysql.allow_persistent
(local value) On
(master valu)e On

mysql.connect_timeout
60
60

mysql.default_host
no value
no value

mysql.default_password
no value
no value

mysql.default_port
no value
no value

mysql.default_socket
no value
no value

mysql.default_user
no value
no value

mysql.max_links
Unlimited
Unlimited

mysql.max_persistent
Unlimited
Unlimited

mysql.trace_mode
Off
Off

donc les mots de passe n'ont pas l'air définis.
est-ce possible que lors de l'installation j'aie fait une erreur?
je ne sais pas, je ne sais plus, je suis perdu...
;)
 
:) :) :)
J'ai bien cherché et j'ai appris un petit peu les arcanes du chmod...
donc mon fichier data est accessible maintenant, suite à la commande: sudo chmod 4755 /usr/local/mysql/data

Je m'épate, bien que j'ignore si tout ceci n'est pas dangereux pour la sécurité de mes fichiers!
On va voir si mes autres problèmes se résolvent.
S.
:p :p
 
J'en appelle à votre aide toute-puissante! mamgré mes recherches, je ne sais toujours pas configurer MySQL qui est cependant bien installé, je sais m'y connecter dans le terminal avec /usr/local/mysql/bin/mysql. Mais, comme il est dit dans le manuel d'instruction post-installation, je ne sais pas installer mes mots de passes ou mes tables de droits.
Voici ce qui se passe dans mon terminal:

[ordinateur-de-sabearts:/usr/local/mysql] sabearts% /usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user: 'root@localhost' (Using password: NO)'
[ordinateur-de-sabearts:/usr/local/mysql] sabearts% /usr/local/mysql/bin/mysqladmin -u root password ''
/usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user: 'root@localhost' (Using password: NO)'

et cela ne change rien si j'ajoute l'hôte.


[ordinateur-de-sabearts:/usr/local/mysql] sabearts% shell> mysql -u root
mysql: Permission denied.

Alors j'ai essayé ma dernière carte...

[ordinateur-de-sabearts:/usr/local/mysql] sabearts% ./bin/mysql_fix_privilege_tables
This scripts updates the mysql.user, mysql.db, mysql.host and the
mysql.func tables to MySQL 3.22.14 and above.

This is needed if you want to use the new GRANT functions,
CREATE AGGREGATE FUNCTION or want to use the more secure passwords in 3.23

If you get 'Access denied' errors, you should run this script again
and give the MySQL root user password as an argument!
Converting all privilege tables to MyISAM format
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

If your tables are already up to date or partially up to date you will
get some warnings about 'Duplicated column name'. You can safely ignore these!
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

Creating Grant Alter and Index privileges if they don't exists
You can ignore any Duplicate column errors
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

Adding columns needed by GRANT .. REQUIRE (openssl)
You can ignore any Duplicate column errors
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

Creating the new table and column privilege tables
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
Changing name of columns_priv.Type -> columns_priv.Column_priv
You can ignore any Unknown column errors from this
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

Fixing the func table
You can ignore any Duplicate column errors
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

Adding new fields used by MySQL 4.0.2 to the privilege tables
You can ignore any Duplicate column errors
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

J'avoue que je ne sais plus quooi faire, depuis les jours que j'y passe...
 
Heuuu je ne suis pas certain de comprendre... mysql_install_db est pour la relation entre les tables.

Pour ce faire tu dois avoir un compte "phpmyadmin" ou encore modifier le script pour un compte root...


Marc-André
 
Hello,

Que veux-tu faire de MySQL ? L'utiliser comme base de test pour du web, ou pour une application local (Java, ...), autre ? Je te conseille de configurer phpMyAdmin (si le module PHP est activé avec ton Partage Web) et d'utiliser la fonction "Privilèges" qui est très simple d'utilisation. Sinon, tu peux utiliser le tool officiel de MySQL, MySQL Administrator (pour MySQL > 4.1) qui est très bien aussi.

Le "MySQL Prompt" c'est bien, mais c'est pas très user-friendly... :rateau:

Bonne chance !
 
merci de vos réponses! j'ai cherché la solution avec acharnement... je souhaite utiliser MySQL comme base de données pour un site web. J'ai effectivement essayé PHPMyAdmin mais sans succès, pour une raison incompréhensible de droits d'accès à l'utilisateur root. J'en devenais fou, car tout ce que j'essayais était refusé, et j'ai peut-être fini par essayer un peu n'importe quoi...il s'agissait en fait d'un bug de MySQL qui n'avait jamais enregistré de mot de passe mais qui en souhaitait un quand même... la solution est dans les pages de bug du site de MySQL. j'ai dû entrer dans un shell:

[votre-ordinateur:/usr/local/mysql] votrenom% sudo ./bin/mysqld_safe --skip-grant-tables
Password:
Starting mysqld daemon with databases from /usr/local/mysql/data

shell> /usr/local/mysql/bin/mysql

....(connection avec le serveur)...

mysql> UPDATE mysql.user SET Password=PASSWORD('motdepasseauchoix') WHERE User='root';
Query OK, 2 rows affected (0.77 sec)
Rows matched: 2 Changed: 2 Warnings: 0

Et depuis lors, tout va comme dans le manuel, donc comme sur des roulettes.
Merci pour votre aide, j'espère pouvoir un jour vous aider à mon tour!...
Seb
:D :D :D