yes password for error mysql iredmail

password - mysql error 1045 access denied for user root



ERROR 1698(28000): acceso denegado para el usuario ''root'' @ ''localhost'' (11)

Algunos sistemas como Ubuntu, mysql está usando por defecto el complemento UNIX auth_socket .

Básicamente significa que: db_users usándolo, será "auth" por las credenciales de usuario del sistema. Puede ver si su usuario root está configurado de esta manera haciendo lo siguiente:

$ sudo mysql -u root # I had to use "sudo" since is new installation mysql> USE mysql; mysql> SELECT User, Host, plugin FROM mysql.user; +------------------+-----------------------+ | User | plugin | +------------------+-----------------------+ | root | auth_socket | | mysql.sys | mysql_native_password | | debian-sys-maint | mysql_native_password | +------------------+-----------------------+

Como puede ver en la consulta, el usuario root está utilizando el complemento auth_socket

Hay 2 formas de resolver esto:

  1. Puede configurar el usuario root para que use el complemento mysql_native_password
  2. Puede crear un nuevo db_user con su system_user (recomendado)

Opción 1:

$ sudo mysql -u root # I had to use "sudo" since is new installation mysql> USE mysql; mysql> UPDATE user SET plugin=''mysql_native_password'' WHERE User=''root''; mysql> FLUSH PRIVILEGES; mysql> exit; $ service mysql restart

Opción 2: (reemplace YOUR_SYSTEM_USER con el nombre de usuario que tiene)

$ sudo mysql -u root # I had to use "sudo" since is new installation mysql> USE mysql; mysql> CREATE USER ''YOUR_SYSTEM_USER''@''localhost'' IDENTIFIED BY ''''; mysql> GRANT ALL PRIVILEGES ON *.* TO ''YOUR_SYSTEM_USER''@''localhost''; mysql> UPDATE user SET plugin=''auth_socket'' WHERE User=''YOUR_SYSTEM_USER''; mysql> FLUSH PRIVILEGES; mysql> exit; $ service mysql restart

Recuerde que si usa la opción # 2, deberá conectarse a mysql como su nombre de usuario del sistema ( mysql -u YOUR_SYSTEM_USER )

Nota: En algunos sistemas (por ejemplo, Debian stretch), el complemento ''auth_socket'' se llama ''unix_socket'' , por lo que el comando SQL correspondiente debería ser: UPDATE user SET plugin=''unix_socket'' WHERE User=''YOUR_SYSTEM_USER'';

Actualización: según el comentario de @ andy parece que mysql 8.xx actualizó / reemplazó el auth_socket para caching_sha2_password No tengo una configuración del sistema con mysql 8.xx para probar esto, sin embargo, los pasos anteriores deberían ayudarlo a comprender el problema. Aquí está la respuesta:

Un cambio a partir de MySQL 8.0.4 es que el nuevo complemento de autenticación predeterminado es ''caching_sha2_password''. El nuevo ''YOUR_SYSTEM_USER'' tendrá este complemento de autenticación y ahora puede iniciar sesión desde el shell bash con "mysql -u YOUR_SYSTEM_USER -p" y proporcionar la contraseña para este usuario en el mensaje. No es necesario el paso "UPDATE user SET plugin". Para ver la actualización predeterminada del complemento de autenticación 8.0.4, consulte https://mysqlserverteam.com/mysql-8-0-4-new-default-authentication-plugin-caching_sha2_password/

Entonces ... estoy configurando un nuevo servidor y sigo teniendo este problema.

Cuando intento iniciar sesión en la base de datos MySQL con el usuario root, aparece el error "ERROR 1698 (28000): acceso denegado para el usuario ''root'' @ ''localhost''".

No importa si me conecto a través del terminal (SSH), a través de PHPMyAdmin o un cliente MySQL, por ejemplo, Navicat. Todos fallan.

Miré en la tabla mysql.user y obtuve lo siguiente:

+------------------+-------------------+ | user | host | +------------------+-------------------+ | root | % | | root | 127.0.0.1 | | amavisd | localhost | | debian-sys-maint | localhost | | iredadmin | localhost | | iredapd | localhost | | mysql.sys | localhost | | phpmyadmin | localhost | | root | localhost | | roundcube | localhost | | vmail | localhost | | vmailadmin | localhost | | amavisd | test4.folkmann.it | | iredadmin | test4.folkmann.it | | iredapd | test4.folkmann.it | | roundcube | test4.folkmann.it | | vmail | test4.folkmann.it | | vmailadmin | test4.folkmann.it | +------------------+-------------------+

Como puede ver, la raíz debe tener acceso.

El servidor es bastante simple, ya que he tratado de solucionar esto por un tiempo ...

Está ejecutando Ubuntu 16.04.1 LTS con Apache, MySQL y PHP, para que pueda alojar sitios web, e iRedMail 0.9.5-1, para que pueda alojar correo.

Iniciar sesión en la base de datos MySQL funciona bien antes de instalar iRedMail. También intenté, simplemente instalando iRedMail, pero luego root, tampoco funciona ...

Si alguien pudiera decirme cómo soluciono mi problema de inicio de sesión de MySQL o cómo instalo iRedMail, además de una instalación de MySQL existente. Y sí, probé los Consejos de instalación y no puedo encontrar esas variables en los archivos de configuración.

Cualquier ayuda es muy apreciada :)


Desea acceder a MySQL con el usuario root, pero no proporciona la contraseña correcta de root.

Si necesita establecer una nueva contraseña para root , el sitio de MySQL tiene una excelente documentación sobre cómo hacerlo: http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

No mostraré el proceso aquí porque la documentación de MySql en el enlace anterior es clara y concisa .


Estaba teniendo este problema en una máquina virtual Debian 8 con la que estaba interactuando a través de Putty en mi escritorio de Windows 10.

Intenté varias sugerencias aquí, pero nada funcionó y estoy ejecutando MariaDB en el host de Debian. Al final descubrí que no podía iniciar el servidor db en modo seguro, pero no era necesario y los siguientes comandos realmente funcionaron para mí, es decir, permitir que un usuario de MySql recién creado inicie sesión en el servidor MySql / MariaDB:

sudo service mysql restart sudo mysql # logs in automatically into MariaDB use mysql; update user set plugin='''' where user=''your_user_name''; flush privileges; exit; sudo service mysql restart # restarts the mysql service

Si lo anterior no funciona para usted, siga los pasos descritos en la publicación anterior de zetacu ( zetacu ) y luego siga mis pasos.

Ahora debería poder usar un cliente de terminal remoto e iniciar sesión de forma segura en mysql con el comando:

mysql -u your_user_name -p

* escriba la contraseña cuando se le solicite


Esto ha sucedido a mí también. El problema es con el repositorio mysql que ya viene con la distribución de Linux. Entonces, cuando simplemente hace: $ sudo apt install mysql-server , instala mysql desde su repositorio predeterminado, lo que da este problema. Entonces, para superar eso, debe desinstalar el mysql $ sudo apt remove mysql* --purge --auto-remove

Luego descargue mysql repo desde el sitio web oficial de mysql MySQL APT Repo Siga su documentación sobre cómo agregar repo e instalarlo. Esto no da problema. Además, como respondió @zetacu, puede verificar que la raíz de mysql ahora realmente use el complemento mysql_native_password


Primer paso: vaya a /etc/phpmyadmin/config.inc.php luego descomente las líneas donde encuentre AllowNoPassword. Segundo paso: inicie sesión en su cuenta predeterminada de MySQL

mysql -u root -p use mysql; update user set plugin="" where user=''root''; flush privilege;

¡y eso es todo!


Sugeriría eliminar la conexión Mysql -

ACTUALIZACIÓN: esto es para Mysql versión 5.5, si su versión es diferente, cambie la primera línea en consecuencia

sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5 sudo rm -rf /etc/mysql /var/lib/mysql sudo apt-get autoremove sudo apt-get autoclean

E instalar de nuevo, pero esta vez establezca una contraseña de root usted mismo. Esto ahorrará mucho esfuerzo.

sudo apt-get update sudo apt-get install mysql-server


También enfrenté el mismo problema la primera vez.

Ahora está arreglado:

Primero, copie el archivo /etc/mysql/mysql.conf.d/mysqld.cnf y /etc/mysql/my.cnf en /etc/mysql/my.cnf .

Puedes hacerlo por comando:

sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf

Ahora vamos a descansar la contraseña:

Use los siguientes comandos en su terminal:

sudo service mysql stop sudo service mysql start sudo mysql -u root

Ahora estás dentro de la consola mysql.

Luego, escriba algunas consultas para restablecer nuestra contraseña de root

USE mysql update mysql.user set authentication_string=password(''newpass'') where user=''root'' and Host =''localhost''; update user set plugin="mysql_native_password"; flush privileges; quit

Ahora podemos limpiar /etc/mysql/my.cng

Abra el archivo anterior en su editor y elimine todas las líneas dentro del archivo.

Después de eso, reiniciemos mysql:

sudo mysql service restart

Ahora usemos mysql con la contraseña recién creada:

sudo mysql -u root -p

Finalmente ingrese su contraseña recién creada.


os: Ubuntu18.04

mysql: 5.7

  1. agregue las skip-grant-tables al final del archivo de mysqld.cnf

  2. cp el my.cnf

sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf

  1. restablecer la contraseña

(base) ➜ ~ sudo service mysql stop (base) ➜ ~ sudo service mysql start (base) ➜ ~ mysql -uroot Welcome to the MySQL monitor. Commands end with ; or /g. Your MySQL connection id is 2 Server version: 5.7.25-0ubuntu0.18.04.2 (Ubuntu) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type ''help;'' or ''/h'' for help. Type ''/c'' to clear the current input statement. mysql> use mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed, 3 warnings mysql> update mysql.user set authentication_string=password(''newpass'') where user=''root'' and Host =''localhost''; Query OK, 1 row affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 1 mysql> update user set plugin="mysql_native_password"; Query OK, 0 rows affected (0.00 sec) Rows matched: 4 Changed: 0 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> quit Bye

  1. eliminar las skip-grant-tables de omisión de concesión de my.cnf

(base) ➜ ~ sudo emacs /etc/mysql/mysql.conf.d/mysqld.cnf (base) ➜ ~ sudo emacs /etc/mysql/my.cnf (base) ➜ ~ sudo service mysql restart

  1. abre el mysql

(base) ➜ ~ mysql -uroot -ppassword mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or /g. Your MySQL connection id is 3 Server version: 5.7.25-0ubuntu0.18.04.2 (Ubuntu) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type ''help;'' or ''/h'' for help. Type ''/c'' to clear the current input statement. mysql>

  1. verifique la política de contraseña

mysql> select @@validate_password_policy; +----------------------------+ | @@validate_password_policy | +----------------------------+ | MEDIUM | +----------------------------+ 1 row in set (0.00 sec) mysql> SHOW VARIABLES LIKE ''validate_password%''; +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password_dictionary_file | | | validate_password_length | 8 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | MEDIUM | | validate_password_special_char_count | 1 | +--------------------------------------+--------+ 6 rows in set (0.08 sec)!

  1. cambiar la configuración de validate_password

mysql> set global validate_password_policy=0; Query OK, 0 rows affected (0.05 sec) mysql> set global validate_password_mixed_case_count=0; Query OK, 0 rows affected (0.00 sec) mysql> set global validate_password_number_count=3; Query OK, 0 rows affected (0.00 sec) mysql> set global validate_password_special_char_count=0; Query OK, 0 rows affected (0.00 sec) mysql> set global validate_password_length=3; Query OK, 0 rows affected (0.00 sec) mysql> SHOW VARIABLES LIKE ''validate_password%''; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password_dictionary_file | | | validate_password_length | 3 | | validate_password_mixed_case_count | 0 | | validate_password_number_count | 3 | | validate_password_policy | LOW | | validate_password_special_char_count | 0 | +--------------------------------------+-------+ 6 rows in set (0.00 sec)

Tenga en cuenta que debe saber que error causado por qué? validate_password_policy?

debe decidir restablecer su contraseña para completar la política o cambiarla.


paso 1. sudo mysql -u root -p

paso 2. USE mysql;

paso 3. ALTER USER ''root''@''localhost'' IDENTIFIED WITH mysql_native_password BY ''admin'';

Aquí ''admin'' es su nueva contraseña, puede cambiarla.

paso 4. exit

Gracias. Estás listo.


That funcionó para mí:

mysql --user=root mysql CREATE USER ''some_user''@''%'' IDENTIFIED BY ''some_pass''; GRANT ALL PRIVILEGES ON *.* TO ''some_user''@''%'' WITH GRANT OPTION; FLUSH PRIVILEGES;


Chequea aquí:

La NUEVA versión de MYSQL lo hace de esta manera.

En el nuevo my-sql, si la contraseña se deja vacía durante la instalación, se basa en el complemento auth_socket .

La forma correcta es iniciar sesión en my-sql con el privilegio sudo .

$ sudo mysql -u root -p

Y luego actualizando la contraseña usando:

$ ALTER USER ''root''@''localhost'' IDENTIFIED WITH mysql_native_password BY ''new-password'';

Una vez hecho esto, stop and start el servidor mysql.

$ sudo service mysql stop $ sudo service mysql start

Para obtener detalles completos, puede consultar percona.com/blog/2016/03/16/… .

Comenta para cualquier duda.