¿Como cambiar la contraseña de root en MySQL?

Si por alguna razón, olvidaste la contraseña de root de tu servidor MySQL, en este post te explico como recuperarla. Como siempre este post aplica para distribuciones GNU/Linux basadas en RedHat.

Sintoma

Al intentar conectarte al servidor MySQL recibes un mesaje de errror 1045, como se muestra a continuación:

Linux console | jpacheco@aex-infra ~
[jpacheco@aex-infra ~]$ mysql -u jpacheco -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘jpacheco’@’localhost’ (using password: YES)

Pre-reqisitos

– Acceso de root en el servidor ya que es necesario detener los servicios de MySQL y arrancar el servicio de MySQL manualmente.

Procedimiento

Para solucionar este problema sigue estos ocho sencillos pasos.

1. Obten acceso de root en el servidor

Linux console | jpacheco@aex-infra ~
[jpacheco@aex-infra ~]$ su
Password:
[root@aex-infra jpacheco]#

2. Ahora hay que detener el servicio MySQL Server

Linux console | root@aex-infra /
[root@aex-infra jpacheco]# systemctl stop mysqld.service

3. A continuación, arrancaremos MySQL en modo seguro usando: safe_mysqld --skip-grant-tables“.

Linux console | root@aex-infra /
[root@aex-infra jpacheco]# safe_mysqld –skip-grant-tables
140906 13:33:11 mysqld_safe Logging to ‘/var/log/mysqld.log’.
140906 13:33:11 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

El proceso anterior deberá seguir ejecutandose, por lo que necesitaras abrir una nueva consola (con acceso a root) y ejecutar en ella el comando: mysql -u root mysql

Linux console | root@aex-infra /
[root@aex-infra ~]# mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.5.35 MySQL Community Server (GPL)

Copyright (c) 2000, 2013, 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>

Nota como MySQL server no requirio de una contraseña.

4. Ahora, asignaremos una nueva contraseña.

Linux console | root@aex-infra /
mysql> UPDATE mysql.user SET Password=PASSWORD(‘contraseña‘) WHERE User=’root’;
Query OK, 3 rows affected (0.06 sec)
Rows matched: 4 Changed: 3 Warnings: 0

mysql>

Cambia, la palabra contraseña por la nueva contraseña de root de tu servidor MySQL.

5. Un par de comandos, FLUSH PRIVILEGES; y quit; antes de continuar.

Linux console | root@aex-infra /
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> quit;
Bye

6. Debemos terminar el proceso safe_mysqld --skip-grant-tables que se ejecuta en la otro consola, para esto usaremos el comando: kill $(cat /var/run/mysqld/mysqld.pid)

Linux console | root@aex-infra /
[root@aex-infra ~]# kill $(cat /var/run/mysqld/mysqld.pid)

En la otra consola nos aparecera un mensaje confirmando que MySQL se ha detenido.

Linux console | root@aex-infra /
[root@aex-infra jpacheco]# safe_mysqld –skip-grant-tables
140906 13:33:11 mysqld_safe Logging to ‘/var/log/mysqld.log’.
140906 13:33:11 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
140906 13:51:19 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

7. Arrancamos MySQL server.

Linux console | root@aex-infra /
[root@aex-infra jpacheco]# systemctl start mysqld.service

8. Finalmente, habras recuperado la contraseña de root de tu servidor MySQL y podras acceder a MySQL server usando: mysql -u root -p sin problemas.

Posts similares:
MySQL como cambiar / asignar la contraseña inicial
MySQL | Adding new user accounts to MySQL server

MySQL como cambiar / asignar la contraseña inicial

Después de que hemos instalado MySQL, lo primero que debemos hacer es cambiar la contraseña por defecto.

En una instalación por defecto el usuario que tendra acceso al control del gestor de bases de datos MySQL es root – no confundir con el usuario root del sistema. La contraseña no esta asignada o es nula null.

Para cambiar la contraseña requerimos de acceso al sistema, via consola (ssh), no necesitamos ser root en el sistema, con lo que podemos hacer el cambio con un usuario no privilegiado. Desde shell, teclea: mysqladmin -u root password, y presiona enter, a continuación teclea la nueva contraseña y confirmala.

Linux console | $ mysqladmin -u root password
$ mysqladmin -u root password
New password:
Confirm new password:

Una vez que la contraseña ya ha sido cambiada exitosamente podrás acceder a la consola de Administración de MySQL, teclea: mysql -u root -p

Linux console | $ mysql -u root -p
$ mysql -u root -p
Enter password:

En caso de que la contraseña que hayas usado no sea correcta recibiras un mensaje de error, como el que se muestra a continuación:

Linux console | $ mysql -u root -p
$ mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)

Finalmente, si tecleaste la contraseña correcta veras la siguiente pantalla:

Linux console | $ mysql -u root -p
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.5.23 MySQL Community Server (GPL)Copyright (c) 2000, 2011, 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>

Nota como ahora el prompt cambio a mysql> indicando que estas en la consola de mysql, desde ahi puedes ejecutar comandos de la base de datos, por ejemplo, mostrar todas las bases de datos: show databases

Linux console | $ mysql -u root -p
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.5.23 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, 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> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
| test |
+——————–+
4 rows in set (0.00 sec)
mysql>

Para salir de la consola de MySQL solo teclea: quit;.

UACH – Maestría en Software Libre – Introducción al Software Libre

Soy un engresado de la carrera de Ingeniería en Sistemas Computacionales del Instituto Tecnológico de Durango generación 1994 – 1999, durante mi época de estudiante recuerdo que alguno de mis maestros menciono un nombre: Linus Torvalds y su sistema operativo Linux (que para ese entonces era la novedad – no que ya no lo sea; aclaro).
Me hubiera gustado entrar en el mundo del Software Libre mientras estudiaba la carrera, yo pensaba que todo era código propietario y lo demás no servia. Pero como dicen en mi tierra: “las cosas pasan por algo”.

Tuvieron que pasar cinco años hasta que un antiguo compañero de trabajo me presentara oficialmente con el mundo de Linux, recuerdo instalar RedHat 8 en una computadora Dell Latitude Cpx; un año después ya en 2005 otro compañero de trabajo me invito a las sesiones del GLUCH y fue ahí donde conocí el movimiento del Software Libre.

De 2004 a la fecha he pasado por cuatro empresas distintas desempeñando diversos cargos en el área de Sistemas y en todas las empresas de una u otra manera he hecho uso del Software Libre en mis actividades diarias.

En mas de una vez el Software Libre me ha salvado el pellejo cuando no ha sido SQUID como servidor proxy,  ha sido Nagios con el monitoreo de equipos, SAMBA para compartir archivos entre usuarios, o incluso algún desarrollo Linux+Apache+MySQL+PHP (LAMP) que me permitido salir al quite de alguna solicitud extraña de mis jefes. En infinidad de ocasiones un Live CD de Fedora me ha ayudado a recuperar de un disco duro información que ya habíamos dada por perdida.

Una de las cosas (ademas de las personales y económicas) que me han motivado a estudiar la maestría en Software Libre ha sido el concepto de comunidad: el como los líderes del Software Libre han podido dejar de lado sus diferencias (hasta cierto punto) para lograr que un ente tan grande y tan heterogéneo puede operar con un único fin, el de ayudarse unos a otros a través del software.

Un concepto muy interesante que muchos de nuestros políticos deberían desarrollar. Pero ese es tema de otro ensayo.

Honestamente, he de decir que al comenzar la maestría no sabia que esperar, habían pasado ya 12 años desde la última clase que tome,  se me hacia muy difícil combinar el trabajo, esposa e hijo con  la maestría. Además creía (erróneamente) que ya sabia  bastante del movimiento y por lo mismo pensaba que había muy poco que aprender, afortunadamente estaba equivocado desde la primer sesión me di cuenta que había mucho mas por aprender.

Finalmente he de decir que espero que al final de la maestría pueda dar validez a todos los conocimientos que he adquirido de manera autodidacta sobre el movimiento del Software Libre a lo largo de los años.

En la primera sesión de la maestría y después de las obligatorias presentaciones, lo primero que se me vino a la mente fue: “todavía faltan dos horas y media para que se acabe la clase”; lo se no es la mejor mentalidad de un estudiante de maestría.

Pero grata fue la sorpresa, las sesiones de tres horas a la semana se convirtieron en una amena charla, donde alumnos y profesor compartíamos opiniones, experiencias e incluso porque no, discutimos cuando no  podíamos llegar a un acuerdo en alguno de los conceptos o temas que estábamos viendo en la sesión.

Rápidamente pasamos de la historia del Software Libre  (personajes y aportaciones), a las licencias de software, derechos de autor, estándares abiertos, modelos de desarrollo, incluso le dimos una breve pasada a los conceptos tales como retorno de inversión y costo total de propiedad.

Cuando hablabamos de los personajes del Software Libre me llamo mucho la atención que personajes tales como De Icaza, Torvalds y Raymond hayan tenido (y tengan hasta la fecha) sus diferencias con Stallman pero que aun así siguieran participando activamente en el movimiento. No quiero decir con esto que Stallman sea el mandamás del movimiento, pero sin lugar a dudas es uno de los que mas ha influenciado.

Cuando abordamos el tema de las licencias de software en la tercera sesión tengo la seguridad de que todos sabíamos que existían licencias como la GPL, LGPL, EULA y Creative Commons, pero: ¿Apache,  Mozilla Public License, BSD License, CDDL? ¡Yo jamás habia escuchado de esas licencias!
Yo pensaba que habia solo dos tipos de licencias: propietarias y de código libre y abierto; pero no es así, se dividen en mas. En esta sesión aprendí algo nuevo.

Al abordar el tema de los estándares abiertos tuve mi primer desencuentro al enterarme de que en Venezuela ya cuentan con la definición de estándar abierto, mientras que en México no nos podemos poner de acuerdo en cosas tan básicas como: la generación de empleo, la seguridad y la educación.
No me lo tomen a mal, no tengo nada en contra del pueblo venezolano, al contrario, espero que algún día los políticos mexicanos legislen algo similar tomando como ejemplo la legislación venezolana, pero ¿que podemos esperar si al momento de escribir estas lineas se discute en el Senado la aprobación del ACTA?

Mientras hablábamos de modelos de desarrollo llegue a la conclusión que una de las razones por las que el movimiento ha crecido tanto ha sido por el sentido de pertenencia.

El hecho de cualquier persona puede formar parte del movimiento, y no necesariamente como desarrollador, si no también como documentador, ‘beta tester’ y embajador promoviendo el uso del Software Libre mediante charlas; le da al movimiento la fuerza para seguir, gente entra y sale del movimiento todos los días, pero las  cabezas siguen hasta hoy en dia: la economía social del movimiento es la moneda de cambio que la da la fortaleza.

“El Software Libre no te hará rico pero te dará de comer” dijo en alguna ocasión Ivan Chavero, y contrario a lo que mucha gente piensa, SI SE PUEDE HACER DINERO con el Software Libre, la gente esta tan mal acostumbrados a  traducir “Free Software” como “Software Gratuito” que inmediatamente se piensa: “No voy a poder lucrar con el”, pero no es así, el concepto “Free Software” se debe traducir y entender como “Software Libre”, porque tienes la libertad de hacer con el lo que quieres, incluso puedes hacer dinero con el.

Existen actualmente modelos de negocios muy rentables e interesantes: desarrollos a la medida, pólizas de soporte, certificaciones y distribución.
De hecho, a ultima fechas fabricantes de equipo de computo como Dell, comercializan sus equipos con un sistema operativo basado en Software Libre, cosa impensable hace algunos años, otra forma de hacer dinero.

En la ultima sesión del curso tuvimos la oportunidad de hablar sobre el Software libre en las computadoras de escritorio y el datacenter.
En mi opinión, y sin lugar a dudas dentro de algunos años el Linux sera el Sistema Operativo preferido para los datacenter.

Actualmente trabajo para Teleflex Inc, en el area de Service Desk para America, tengo a mi cargo un equipo de cuatro personas y aunque la empresa corre sus aplicaciones basicamente en soluciones de licencia cerrada o de codigo propietarion, nos las arreglamos para usar Software Libre para hospedar nuestra bases de conocimientos.

Es un servidor basado en Fedora Core 14 donde corremos los siguientes servidores: base de datos (MySQL), servidor web (Apache), consola remota (SSH), carpetas compartidas (SAMBA) y un proxy cache (Squid); ademas de programar soluciones especificas basados en Perl y PHP. En el mismo servidor hospedamos: un foro (BBForum), una wiki (Wiki) y un software de gestión de proyectos (dotProject).

La wiki es la herramienta que mas usamos hasta es momento, es la base de conocimientos al dia de hoy cuenta con mas de 500 artículos.
Conforme crezca la operación del Service Desk y lo enlacemos con los Service Desk de Irlanda y Malasia esperamos que en menos de un año se duplique el numero de entradas en la wiki.

El foro, lo usamos como una herramienta de colaboración que nos permite discutir temas de una manera no tan formal, los temas no críticos son subidos al foro y todos los miembros del equipo colaboramos aportando nuestro personal punto de vista, con el foro no dependemos de horarios.

El curso de Introducción al Software Libre me ha dado la oportunidad de conocer otras herramientas que en un futuro próximo estaremos usando.
Hasta antes del curso el control de versiones de los desarrollos era llevado a mano, mediante la copia del código fuente a un segundo servidor donde posteriormente se realizaba una análisis para determinar que archivo debía ser usado, ya se imaginaran el número de carpetas con diferentes versiones del mismo código.
En este momento estamos evaluando usar ya sea GIT o CVS para el control de versiones.

En un futuro me gustaría estar involucrado en las actividades de monitoreo de servidores y equipo de red usando Nagios.

En general el curso de Introducción al Software Libre rebaso mis expectativas, no solo tuve la oportunidad de recordar conceptos con los que yo estaba familiarizado si no que ademas tuve exposición a temas que desconocía por completo.

En la actualidad el uso del Software Libre esta a la alza y dentro de poco tiempo las empresas buscaran mas a profesionales de Tecnologías de Información con experiencia en Software Libre.

Esta maestría es un ejemplo del auge e impulso que tendrá el Software Libre y el hecho de que México sea el primer país en ofrecerla en toda América es para mi un indicio de que vamos por buen camino,
El gran despegue del Software Libre en México en mi opinión se dará cuando: se tenga una legislación similar que en Venezuela, cuando en las escuelas publicas de México tengamos maquinas corriendo Software Libre y cuando las empresas le pierdan el miedo.

La gran versatilidad de Linux,  ya sea que se use como computadora de escritorio o servidor, permitirá que su adopción sea mas rápida.

Los primeros pasos se han dado ya.

MySQL | Respaldar base de datos

Respaldar una base de datos MySQL desde la consola (Linux) es de lo mas sencillo.

Para respaldar la base de datos solo necesitas ejecutar el comando:

mysqldump -u [usuario] -p[contraseña] [base de datos] > [archivo]

[usuario] – usuario con privilegios de acceso a la base de datos
[contraseña] – contraseña de acceso a la base de datos, la contraseña va inmediatamente despues de la directiva -p (sin espacios)
[base de datos] – nombre de la base de datos
[archivo] – archivo en el que sera almacenado el respaldo

archivo generado contendra todas las instrucciones SQL necesarias para crear las tablas.

Por ejemplo, para respaldar en el archivo ‘mi_base_de_datos.sql’ la base de datos ‘JAWScms’ con usuario ‘jawsuser’ y contraseña ‘password123!’ deberas ejecutar el siguiente comando:

Linux console | mysqldump -u jawsuser -ppassword123! JAWScms > mi_base_de_datos.sql
$ mysqldump -u jawsuser -ppassword123! JAWScms > mi_base_de_datos.sql

Si el archivo es muy grande lo puedes comprimir para que ocupe menos espacio.

Listo!

Mas información:

http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html

MySQL | Adding new user accounts to MySQL server

Do you need a new user for your database running on MySQL server?

1. Access to MySQL with the root username, remember that the root account must have INSERT privileges to the mysql database, use the following command:

Linux console

$ mysql -u root -p

2. *GRANT access to the required database:

Linux console

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘user’@’localhost’
-> IDENTIFIED BY ‘password’ WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘user’@’%’
-> IDENTIFIED BY ‘password’ WITH GRANT OPTION;

The accounts created on step # 2 have full privileges to do anything, one of the accounts can be used only when connecting from localhost, the other one can be used when connection from any other host.

That’s all.