2011-06-06 10 views
8

Acabo de instalar macports a través de macports 1.9.2 en Snow Leopard. Ahora no puedo usar mysql porque parece como si no supiera la contraseña.Restablecer la contraseña de root de mysql5 en macports

$ sudo mysql5 -u root -p 
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 

no estoy seguro de si se trata de un error en el uso de la instalación o, o simplemente olvidó la contraseña, pero creo que es necesario para restablecer la contraseña. ¿Cómo hacerlo?

ACTUALIZACIÓN: Puedo iniciar y detener mi servidor MySql, por lo que no debe estar roto, pero no tengo un comando como $ sudo/opt/local/lib/mysql5/bin/mysqld_safe5.

$ ls /opt/local/lib/mysql5/bin/ 
innochecksum   mysql_client_test  mysql_secure_installation mysqlbinlog   mysqlimport   ndb_drop_index   ndb_select_all   resolve_stack_dump 
msql2mysql   mysql_client_test_embedded mysql_setpermission  mysqlbug   mysqlshow   ndb_drop_table   ndb_select_count  resolveip 
my_print_defaults  mysql_config   mysql_tzinfo_to_sql  mysqlcheck   mysqlslap   ndb_error_reporter  ndb_show_tables 
myisam_ftdump   mysql_convert_table_format mysql_upgrade   mysqld_multi   mysqltest   ndb_mgm    ndb_size.pl 
myisamchk   mysql_find_rows   mysql_waitpid   mysqld_safe   mysqltest_embedded  ndb_print_backup_file  ndb_test_platform 
myisamlog   mysql_fix_extensions  mysql_zap   mysqldump   ndb_config   ndb_print_schema_file  ndb_waiter 
myisampack   mysql_fix_privilege_tables mysqlaccess   mysqldumpslow   ndb_delete_all   ndb_print_sys_file  perror 
mysql    mysql_install_db  mysqladmin   mysqlhotcopy   ndb_desc   ndb_restore   replace 
+0

comprobar mi respuesta: mysqld_safe5 reemplazado con mysqld_safe – technology

+0

algo no está bien con mi instalar: mysql> Actualización de usuario establecido Contraseña = PASSWORD ('nueva contraseña') donde el usuario = 'root'; Query OK, 0 filas afectadas (0,03 seg) filas encontradas: 0 modificados: 0: 0 Advertencias Si trato de crear manualmente raíz, se dice que no puede con skip-grant-tables ... Reinstalar ? – mimrock

+1

intenta reinstalar. – technology

Respuesta

6

que tenían el mismo problema. Al tratar de restablecer la contraseña (como se sugirió develroot), también conseguí:

Rows matched: 0 Changed: 0 Warnings: 0 

Así el usuario root nunca se había creado en el primer lugar. Tomé los siguientes pasos además de la respuesta de develroot:

flush privileges; 
CREATE USER 'root'@'localhost' IDENTIFIED BY 'root' 
GRANT ALL ON *.* TO 'root'@'localhost' 
+0

Esto también me sucedió después de una instalación de macports. Tu solución lo solucionó Gracias –

+0

jaja, esto también me pasó a mí también, ese fue el maldito problema: '' ¡no hay usuarios en absoluto ahí! ' – holms

16

En primer lugar usted tendrá que asegurarse de que su base de datos se detiene:

$ sudo /opt/local/share/mysql5/mysql/mysql.server stop 

Ahora se debe poner en marcha la base de datos en segundo plano, a través del comando mysqld_safe:

$ sudo /opt/local/lib/mysql5/bin/mysqld_safe --skip-grant-tables & 

Ahora que el servidor se está ejecutando con el indicador --skip-grant-tables puede conectarse a él con ingenio Hout una contraseña y completar el trabajo:

$ sudo mysql5 --user=root mysql 
Enter password: 

mysql> update user set Password=PASSWORD('new-password-here') WHERE User='root'; 
Query OK, 2 rows affected (0.04 sec) 
Rows matched: 2 Changed: 2 Warnings: 0 

mysql> flush privileges; 
Query OK, 0 rows affected (0.02 sec) 

mysql> exit 
Bye 

Ahora que usted ha hecho que sólo tiene que detener el servidor, por lo que puede volver a ejecutar un servidor MySQL con restricciones de contraseña segura en su lugar. Primero traiga al servidor que comenzó a primer plano escribiendo "fg", luego mátalo presionando "Ctrl + c" después.

Esto ahora le permitirá iniciar el servidor:

$ sudo /opt/local/share/mysql5/mysql/mysql.server start 
+0

Gracias por su respuesta. Lamentablemente, no tengo este comando, verifique la pregunta original para más detalles. – mimrock

+0

@mimrock - Tienes 'mysqld_safe'. –

2

Esta es mi solución.

Después de ejecutar este: sudo -u mysql mysql_install_db5

me dio este mensaje:

ERROR: 1004 Can't create file '/var/tmp/#sql180bd_1_0.frm' (errno: 9) 
121221 2:06:21 [ERROR] Aborting 

Igual que los informes anteriores, mi mesa estaba vacía usuarios --- todas las tablas de MySQL fueron emtpy

Finalmente, Me di cuenta de hacer esto:

  1. Ejecutar mysqld in sa modo fe

    sudo/opt/local/bin/mysqld_safe5 --skip-grant-tables &

  2. Acceder y soltar la base de datos MySQL rota

    $ mysql5 $ mysql> DROP tabla de MySQL;

  3. Vuelva a ejecutar el mysql_install_db5 como root en lugar de MySQL por lo que puede al menos hacer el trabajo

    $ sudo -u mysql_install_db5 raíz

  4. A continuación, volver atrás y chown -R todo en/opt/local/var/db/mysql5 a mysql: mysql como debe ser.

    $ sudo chown -R mysql: mysql/opt/local/var/db/mysql5/ $ sudo chown -R mysql: mysql/opt/local/var/run/mysql5/ $ sudo chown -R mysql : mysql/opt/local/var/log/mysql5/

  5. todo funcionó bien después de eso, gracias.

Cuestiones relacionadas