Estoy tratando de instalar mysql en una porción que tiene CentOS Linux release 7.2.1511
. Eche un vistazo a la instalación del proceso:
# sudo yum install mysql-server
Salida:
Dependencies Resolved
===========================================================================================================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================================================================================================
Removing:
mysql-community-client x86_64 5.7.10-1.el7 @mysql57-community 109 M
mysql-community-server x86_64 5.7.10-1.el7 @mysql57-community 652 M
Transaction Summary
===========================================================================================================================================================================================================
Ejecuté el demonio mysql:
# sudo service mysqld start
Comprobación del servicio:
# ps -ef|grep mysql
mysql 1371 1 0 22:17 ? 00:00:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
Aquí viene el problema que me vuelve loco. Quiero establecer la contraseña de root por primera vez, así que lo hice:
# sudo mysql_secure_installation
// when password is required, I just type "enter key"
Pero el resultado: asegurar la implementación del servidor MySQL.
Ingrese la contraseña para el usuario root: Error: Acceso denegado para el usuario 'root' @ 'localhost' (usando la contraseña: NO)
Googleando el error, en el 90% de los casos, la solución es llamar al mysqld_safe --skip-grant-tables &
comando:
service mysqld stop
mysqld_safe --skip-grant-tables &
mysql --user=root mysql
update user set Password=PASSWORD('new-password') where user='root';
flush privileges;
exit;
Pero mysqld_safe
provoca un error de "comando no encontrado". También probé con sudo mysqld --skip-grant-tables &
, pero no hace nada. Le agradeceré si me guía en la dirección correcta para establecer la contraseña de root. Gracias de antemano.
PATH
. O necesitas caminos completos. (Esta es más una pregunta de Linux que una pregunta de MySQL.)Respuestas:
Si solo ejecuta el comando mysql bajo el usuario root, se le otorgará acceso sin solicitar la contraseña, ya que la autenticación de socket está habilitada para root @ localhost.
Esta guía es engañosa.
La única forma de establecer una contraseña es cambiar a autenticación nativa como:
fuente
En mi loca búsqueda de una solución, eché un vistazo
/var/log/mysqld.log
y encontré esta línea:Parece que mysql 5.7+ genera una contraseña aleatoria en la instalación y se le solicita en ese archivo.
fuente
Siga los pasos a continuación para restablecer la contraseña:
Restablezca la contraseña de root del servidor MySQL.
Salida algo como:
Use la contraseña anterior durante el proceso de reinicio mysql_secure_installation .
Ha restablecido correctamente la contraseña de root del servidor MySQL. Utilice el siguiente comando para verificar si el servidor MySQL se conecta o no.
Vea mi artículo: Instale MySQL 5.7 más reciente en RHEL / Centos 7
fuente
Todo lo anterior no funcionó para mí y tenga en cuenta que pasé una hora o más probando todas las demás sugerencias del sitio web MYSql para todo en SO, finalmente lo conseguí trabajando con:
Nota: aunque mostraba Introducir contraseña para el usuario root, no tenía la contraseña original, así que simplemente ingresé la misma contraseña para usarla como la nueva contraseña.
Nota: no había /var/log/mysqld.log solo /var/log/mysql/error.log
ejecutar / usr / bin / mysql_secure_installation
Salida de mysql_secure_installation
fuente