2012-04-12 12 views
11

Estoy en Mac OS X Lion y acabo de instalar mysql5 usando MacPorts.mysql5 - Como 'raíz' no puede crear una base de datos ni hacer nada (acceso denegado)

Entonces me encontré con éxito:

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

soy capaz de iniciar el servidor y conectarse como 'root' bien, pero no puede crear ninguna base de datos.

$ 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' 

he hecho un montón de buscar en Google tratando de resolver esto, y parece que el problema podría tener que ver con permisos del sistema de archivos para/opt/local/var/db/mysql5, pero yo he intentado cambiar esto fue en vano:

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

he experimentado con el titular haya '_mysql', 'mysql', y 'root: rueda', pero ninguno de ellos ha hecho una diferencia.

+2

Bienvenido a StackOverflow. La forma correcta de marcar esto como resuelto (y hacer que la respuesta sea más clara para los lectores futuros) es publicar su solución como una respuesta a su propia pregunta. Después de un período de tiempo, incluso puede aceptarlo como la respuesta correcta a su pregunta. Tómese unos minutos para revisar las [preguntas frecuentes] (http://stackoverflow.com/faq) para familiarizarse con la manera en que SO está diseñado para operar; Vale la pena leerlo, ya que SO es un gran recurso. :) (Por cierto, gran primera pregunta .1.) –

+0

Gotcha. Gracias por los consejos @KenWhite –

Respuesta

20

CORREGIDO - mysql creó mi cuenta "raíz" sin privilegios (soy un mysql newb).

Solucioné iniciando el servidor MySQL con

--skip-grant-tables 

Luego lanzamiento con:

mysql5 

y en funcionamiento:

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

Espero que esto ayude a alguien!

+2

Y obtienes un +1 de mi por una buena respuesta para que coincida con la pregunta. :) –

+0

¡Ahorre mi día! ¡Gracias! –

Cuestiones relacionadas