2012-04-12 6 views
11

Ich bin auf Mac OS X Lion und nur mysql5 mit MacPorts installiert.mysql5 - Da 'root' kann keine Datenbank erstellen oder irgendetwas tun (Zugriff verweigert)

Dann lief ich erfolgreich:

sudo /opt/local/lib/mysql5/bin/mysql_install_db --user=mysql 

Ich bin in der Lage den Server und die Verbindung als ‚root‘ in Ordnung, zu starten, aber ich keine Datenbanken erstellen kann.

$ mysql5 -u root -p 
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 1 
Server version: 5.1.61 Source distribution 

mysql> create database dbname; 
ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'dbname' 

Ich habe versucht, eine Menge googeln dies getan, um herauszufinden, und es scheint, dass das Problem mit dem Dateisystemberechtigungen für/opt/local/var/db/mysql5 könnte zu tun haben, aber ich eine Änderung dieser ohne Erfolg habe versucht:

$ ls -l /opt/local/var/db/ 
total 0 
drwxrwxrwx 8 _mysql _mysql 272 Apr 12 11:55 mysql5 

ich mit dem Eigentümer zu sein ‚_mysql‘, ‚mysql‘ und experimentiert haben ‚root: wheel‘, aber keiner von ihnen hat einen Unterschied gemacht.

+2

Willkommen bei StackOverflow. Der richtige Weg, dies als gelöst zu markieren (und die Antwort für zukünftige Leser klarer zu machen), besteht darin, Ihre Lösung als Antwort auf Ihre eigene Frage zu veröffentlichen. Nach einer gewissen Zeit können Sie es sogar als die richtige Antwort auf Ihre Frage akzeptieren. Bitte nehmen Sie sich ein paar Minuten Zeit, um die [FAQ] (http://stackoverflow.com/faq) zu lesen, um sich mit der Funktionsweise von SO vertraut zu machen. Es ist das Lesen wert, denn SO ist eine großartige Ressource. :) (BTW, tolle erste Frage. +1.) –

+0

Gotcha. Danke für die Tipps @KenWhite –

Antwort

20

FIXED - mysql erstellt meine 'root' Konto ohne Privilegien (ich bin ein mysql newb).

ich durch Starten von MySQL gelöst mit

--skip-grant-tables 

Dann mit Start:

mysql5 

und Laufen:

mysql> UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root'; 
mysql> FLUSH PRIVILEGES; 
mysql> GRANT ALL ON *.* TO 'root'@'localhost'; 

hoffe, das hilft jemand!

+2

Und du bekommst +1 von mir für eine gute Antwort auf die Frage. :) –

+0

Rette meinen Tag! Vielen Dank! –