martes, 23 de julio de 2013

MySQL Bases de datos de ejemplo

Original post http://anothermysqldba.blogspot.com/2013/07/mysql-sample-databases.html

Vi un post en el forums.mysql.com página web sobre las bases de datos de muestra y pensé que podría valer la pena un post para dar una visión general rápida de las de los demás.

Las bases de datos de ejemplo se puede encontrar aquí: http://dev.mysql.com/doc/index-other.html
Puede cargar estas bases de datos a través de la línea de comandos de MySQL:

$ tar -vxf sakila-db.tar.gz
$cd sakila-db
$ mysql -u root -p < sakila-schema.sql
Enter password:
$ mysql -u root -p < sakila-data.sql
Enter password:

$ gzip -d world_innodb.sql.gz
$ mysql -u root -p -e "DROP SCHEMA IF EXISTS world";
Enter password:
$ mysql -u root -p -e "CREATE SCHEMA world";
Enter password:
$ mysql -u root -p world < world_innodb.sql
Enter password:

Usted consigue la idea. Base de datos de ejemplo Sakila tiene SCHEMA quitan y crean comandos de esquema en el archivo así que no tienes que hacer ese paso de ese esquema.

También puede usar MySQL Workbench para cargar estos datos.
  • Crear un controlador de conexión para la base de datos.
  • Utilice este identificador de conexión de nueva creación para establecer una instancia de Administration Server.
  • Haga doble clic en la nueva instancia.
  • Según los datos de exportación / Restaurar debería ver una importación de datos.
  • Importar de un archivo autónomo
    • Ruta del archivo será la ubicación de su sakila-schema.sql repita para sakila-data.sql
    • Puede seleccionar un esquema o crear uno nuevo en el caso de mundo.
    • Seleccione Inicio importación y entonces usted estará en la vista Import Progress.
Ahora tiene acceso a las bases de datos de ejemplo en su base de datos.

$ mysql -u root -p
> Uso sakila
> SHOW TABLES;
> Select * from límite actor de 3;
+ ---------- + ------------ + ----------- + ------------- -------- +
| Actor_id | FIRST_NAME | apellidos | last_update |
+ ---------- + ------------ + ----------- + ------------- -------- +
| 1 | PENELOPE | GUINNESS | 2006-02-15 04:34:33 |
| 2 | NICK | WAHLBERG | 2006-02-15 04:34:33 |
| 3 | ED | CHASE | 2006-02-15 04:34:33 |
+ ---------- + ------------ + ----------- + ------------- -------- +
Via banco de trabajo:
  • Cierre la pestaña de administración
  • Seleccione el controlador de conexión bajo el Desarrollo SQL
  • Usted puede simplemente escribir select * from límite actor de 3, y golpear el perno de la iluminación.
  • O bien, puede escribir parte del comando y haga doble clic en el nombre de tabla o nombres de las columnas para que se pueblan los nombres para usted. A continuación, seleccione el perno de la iluminación.
Ahora se dispone de datos para empezar a jugar y aprender con.

Si desea agregar tablas para ello se puede utilizar la línea de comandos MySQL o Desarrollo de SQL y haga clic derecho en "Tablas" en el marco del esquema de su elección y "crear una nueva mesa"

miércoles, 17 de julio de 2013

Llegada sobre las variables de estado de MySQL.

Original post: http://anothermysqldba.blogspot.com/2013/07/check-in-on-your-status-variables-in.html

Así que usted tiene su base de datos se ejecuta como se esperaba. 
Pero, ¿es así? ¿Podría ser mejor funcionamiento? 

¿Cuándo es la última vez que la consultó sobre algunas de las variables de estado? 

Algunas variables de estado clave a vigilar son: 

Así que en pocas palabras .... comprobar el estado!

martes, 16 de julio de 2013

MySQL Encuesta Distribuciones

He creado este Estudio general Distribuciones MySQL. Los resultados estarán disponibles a finales de la encuesta. Se requiere que todas las preguntas (sólo 4 preguntas) he tratado de orientar cada encuesta a la lengua que este blog se presenta pulg

Los resultados no van a ninguna de las distribuciones de MySQL pero en este caso para la visión pública.

Por favor, tome la encuesta aquí:
http://www.surveymonkey.com/s/KXCLBBQ

sábado, 13 de julio de 2013

Exportar CSV directamente desde MySQL

Original post: http://anothermysqldba.blogspot.com/2013/07/export-csv-directly-from-mysql.html

Primera otro post sobre esto aquí:
Pero desde que vi esta publicado en el forums.mysql.com pensé que iba a dar un ejemplo poco más.

Así que para este ejemplo estoy usando la base de datos mundial. Está disponible para descargar gratis aquí:

mysql>desc City;
+-------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| Name | char(35) | NO | | | |
| CountryCode | char(3) | NO | MUL | | |
| District | char(20) | NO | | | |
| Population | int(11) | NO | | 0 | |
+-------------+----------+------+-----+---------+----------------+




mysql> SELECT ID, Name, CountryCode , District , Population
INTO OUTFILE '/tmp/City_data.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
FROM City ;
Query OK, 4079 rows affected (0.04 sec)




# more /tmp/City_data.csv
1,"Kabul","AFG","Kabol",1780000
2,"Qandahar","AFG","Qandahar",237500
3,"Herat","AFG","Herat",186800
4,"Mazar-e-Sharif","AFG","Balkh",127800
5,"Amsterdam","NLD","Noord-Holland",731200
6,"Rotterdam","NLD","Zuid-Holland",593321
7,"Haag","NLD","Zuid-Holland",440900
8,"Utrecht","NLD","Utrecht",234323
9,"Eindhoven","NLD","Noord-Brabant",201843

jueves, 4 de julio de 2013

Opciones de actualización con LIKE REGEXP SUBSTRING y localizar

Original post: http://anothermysqldba.blogspot.com/2013/07/update-options-with-like-regexp.html

Un post reciente foro me hizo parar y pensar por un momento .. 
http://forums.mysql.com/read.php?10, 589573,589573 # msg-589573 

El problema era que el usuario desea actualizar sólo la palabra audi y no la palabra auditor. 
Se resolvió mediante el aprovechamiento del período con facilidad una vez que dejé de tratar de usar SUBSTRING y localizar. Ellos querían una solución rápida y fácil, después de todo. 


root@localhost [test]> CREATE TABLE `forumpost` (
-> `name` varchar(255) DEFAULT NULL
-> ) ENGINE=InnoDB;

root@localhost [test]> insert into forumpost value ('An auditor drives an audi.'),('An auditor drives a volvo.');

root@localhost [test]> select * from forumpost;
+----------------------------+
| name |
+----------------------------+
| An auditor drives an audi. |
| An auditor drives a volvo. |
+----------------------------+ 


Así que ahora vamos a actualizar la manera fácil y rápida, aprovechando el período 

root@localhost [test]>UPDATE forumpost SET name = REPLACE(name, 'audi.', 'toyota.') WHERE name LIKE '%audi.';
Query OK, 1 row affected (0.20 sec)
Rows matched: 1 Changed: 1 Warnings: 0

root@localhost [test]> select * from forumpost;
+------------------------------+
| name |
+------------------------------+
| An auditor drives an toyota. |
| An auditor drives a volvo. |
+------------------------------+ 


Pero ... ¿qué pasa con las opciones válidas de SUBSTRING y localizar ..... 


root@localhost [test]> insert into forumpost value ('An auditor drives an audi.');
root@localhost [test]> insert into forumpost value ('An auditor drives an audi car');
root@localhost [test]> select * from forumpost;
+-------------------------------+
| name |
+-------------------------------+
| An auditor drives an toyota. |
| An auditor drives a volvo. |
| An auditor drives an audi. |
| An auditor drives an audi car |
+-------------------------------+ 


Primera prueba sus opciones por lo que asegúrese de que usted puede encontrar lo que buscas .. 


root@localhost [test]> SELECT * FROM forumpost WHERE name REGEXP 'audi car$';
+-------------------------------+
| name |
+-------------------------------+
| An auditor drives an audi car |
+-------------------------------+ 

root@localhost [test]> SELECT * FROM forumpost WHERE name LIKE '%audi car%';
+-------------------------------+
| name |
+-------------------------------+
| An auditor drives an audi car |
+-------------------------------+


Eso realmente no hizo mucho, ya que acaba de cambiar el período de la palabra coche. Así que sigue adelante .... 

Tenemos que sacar sólo la palabra audi de la línea con el coche audi. 

root@localhost [test]> SELECT SUBSTRING(name,-8,4), name FROM forumpost WHERE SUBSTRING(name,-8,4) = 'audi';
+----------------------+-------------------------------+
| SUBSTRING(name,-8,4) | name |
+----------------------+-------------------------------+
| audi | An auditor drives an audi car |
+----------------------+-------------------------------+ 


El SUBSTRING me permitió tirar de los 4 primeros caracteres después conté de nuevo 8 caracteres del final. 

¿Y qué si usted no sabe la ubicación de los personajes? 
Para empezar se debe revisar sus datos para asegurarse de que usted sabe lo que está después. Sin embargo, los personajes pueden moverse por la cadena por lo que permite trabajar con LOCATE. 

Voy a añadir otra fila sólo para pruebas. 

root@localhost [test]> insert into forumpost value ('An auditor drives an red audi car');
Query OK, 1 row affected (0.04 sec)

root@localhost [test]> select * from forumpost;
+------------------------------------+
| name |
+------------------------------------+
| An auditor drives an toyota. |
| An auditor drives a volvo. |
| An auditor drives an audi. |
| An auditor drives an audi car |
| An auditor drives an audi blue car |
| An auditor drives an red audi car |
+------------------------------------+ 


Así que, independientemente de la conclusión, podemos ver que audi siempre después de auditor, así que sólo hay que pasar por alto esa palabra. La palabra auditor está en los primeros 8 caracteres para omitir esos. 

root@localhost [test]> SELECT LOCATE('audi', name,8), name FROM forumpost WHERE LOCATE('audi', name,8) > 0 ;
+------------------------+------------------------------------+
| LOCATE('audi', name,8) | name |
+------------------------+------------------------------------+
| 22 | An auditor drives an audi. |
| 22 | An auditor drives an audi car |
| 22 | An auditor drives an audi blue car |
| 26 | An auditor drives an red audi car |
+------------------------+------------------------------------+ 


Aceptar así que encontramos los que buscamos. Ahora tenemos que escribir la instrucción de actualización. 

No podemos usar la sustituya este momento. 

UPDATE forumpost SET name = REPLACE(name, LOCATE('audi', name,8), 'mercedes') WHERE LOCATE('audi', name,8) > 0 ;
Query OK, 0 rows affected (0.02 sec)
Rows matched: 4 Changed: 0 Warnings: 0 

Note que encontró las filas, pero no cambió nada. 

Así que intentarlo de nuevo y yo no quiero asumir la posición 8. Quiero que el segundo valor de audi. 
Así que una prueba muestra que con SUBSTRING_INDEX puedo saltar el primero uno y Uso CONCAT 

SELECT name , CONCAT ( SUBSTRING_INDEX(name, 'audi', 2) , ' mercedes ' , SUBSTRING_INDEX(name, 'audi', -1) ) as newvalue
FROM forumpost
WHERE LOCATE('audi', name,10) > 0 ;
+-----------------------------------+-----------------------------------------+
| name | newvalue |
+-----------------------------------+-----------------------------------------+
| An auditor drives an audi. | An auditor drives an mercedes . |
| An auditor drives an audi. | An auditor drives an mercedes . |
| An auditor drives an audi car | An auditor drives an mercedes car |
| An auditor drives an red audi car | An auditor drives an red mercedes car |
+-----------------------------------+-----------------------------------------+

root@localhost [test]> UPDATE forumpost SET name = CONCAT(SUBSTRING_INDEX(name, 'audi', 2) , ' mercedes ' , SUBSTRING_INDEX(name, 'audi', -1) )
WHERE LOCATE('audi', name,10) > 0 ;
Query OK, 4 rows affected (0.03 sec)
Rows matched: 4 Changed: 4 Warnings: 0

root@localhost [test]> select * from forumpost;
+-----------------------------------------+
| name |
+-----------------------------------------+
| An auditor drives an mercedes . |
| An auditor drives a volvo. |
| An auditor drives an mercedes . |
| An auditor drives an mercedes car |
| An auditor drives an red mercedes car |
+-----------------------------------------+
5 rows in set (0.00 sec) 


Ahora, otorgó a la gramática con el uso de "uno" no es válido, pero esa es otra historia. 

Más información al respecto se puede encontrar aquí: 

miércoles, 3 de julio de 2013

Entender el servidor MySQL

Original post: http://anothermysqldba.blogspot.com/2013/07/understand-your-mysql-server.html

Pensé que podría ser útil para escribir algunas pautas para ayudar a todos a entender diferentes aspectos de su servidor MySQL.

Estos datos se han recogido a través del tiempo y voy a hacer mi mejor esfuerzo para mensajes de referencia. En general consideran que las mejores fuentes de información que se enumeran a continuación:
Así que por el bien de este ejemplo vamos a suponer que acaba de tomar la responsabilidad de un servidor MySQL. ¿Cuál es la mejor forma de obtener la necesiten conocer la información ...

¿Conoces la contraseña a la base de datos? Si no está utilizando el mysql_config_editor (tan pre 5.6) se puede hacer un poco de investigación para averiguar. De lo contrario tienes que reiniciarlo y forzar su camino pulg Suponemos que no quieres para reiniciarlo. Si usted tiene que encontrar la manera de usar - skip-grant-tables revisar algunas entradas del blog con ejemplos anteriores: http://anothermysqldba.blogspot.com/search/label/--skip-grant-tables

Así que primero alguna posición para buscar la contraseña. Esto también significa que si haces una de estas personas pueden encontrar la contraseña más tarde.
  • averiguar si alguien utiliza la contraseña en la línea de comandos.
    • historia | grep mysql
  • crontab-l
    • Si ve scripts de copia de seguridad o etc se ven en las secuencias de comandos de una contraseña
  • localizar. my.cnf
  • . cat bash_history | grep mysql
  • tratar mysql sin contraseña, pero por supuesto, la esperanza es que su caja es seguro.
  • Con MySQL verificación 5.6 si tiene una cuenta configurada ya
    • mysql_config_editor impresión - todo
Aceptar lo que tiene la información de su cuenta y usted está en la caja.
Antes de pasar a un servidor MySQL saber un poco acerca de su servidor primero.
Parte de esta información puede ser que apenas conocen, pero para estar seguros.
Ejecute lo siguiente en un sistema Linux, por ejemplo, para obtener el sistema operativo, Distro, memoria, información del disco.
  • cat / etc / * de liberación
  • uname-a
  • df-ah
  • montar
  • libre-m
  • superior
  • Mirar por encima de este mensaje para obtener información swappiness http://www.mysqlplus.net/tag/swappiness/
  • Usted hace un archivo cnf específico que se utiliza?
    • ps-ef | grep mysql | grep cnf
    • Datadir:
      • ps-ef | grep mysql | grep datadir

Así que ahora saltar en el servidor MySQL y empezar a recopilar algunos datos. Mientras que una revisión del archivo my.cnf puede darle la mayor parte de esta información también se puede recoger desde el servidor.

show variables like '%log%';


Mire sobre su error (. Err) archivo para revisar cualquier problema. Este debe ser el primer sitio donde mires después de un error en el arranque y etc

Entonces, ¿cómo funciona el servidor? Recoger rápidamente el siguiente ejecuta el comando de estado.
  • Versión
  • Temas
  • Preguntas
  • Consultas lentas
  • Abre
  • Mesas Flush
  • Mesas abiertas
  • Las consultas por segundo promedio

mysql> status


El comando "mysqladmin extended-status" también puede darle información para usar con grep, pero dentro del servidor es también válida.

Mantenga un ojo en la siguiente información.
Algo de esto también se encuentra aquí http://www.techrepublic.com/blog/opensource/10-mysql-variables-that-you-should-monitor/56

Usted puede revisar el mensaje mencionado para ver una buena mesa que explica algunos de estos valores. Estos son los que creo que usted debe mantener un ojo en si.

> show status like 'Handler_read_first';
> show status like 'Key_reads';
> show status like 'Select_full_join';


Averigua el porcentaje global de las consultas se ejecuta lentamente. Esperemos que este es un número pequeño.
Utilice la información de estado para poblar estas variables para una comprobación rápida.

set @slow_queries=<value in the status output>;
set @questions=<value in the status output>;
SELECT ROUND(100* (@slow_queries / @questions),2) "Slow Query percentage" \G


Aprenda a entender el resultado de: MOSTRAR INNODB ESTADO \ G
Mantenga un ojo en información de interbloqueo para que pueda empezar a depurar esos.

¿Su sistema tiene disparadores, eventos, procedimientos almacenados?

mysql> SELECT db, name FROM mysql.proc;
mysql> SELECT TRIGGER_SCHEMA , TRIGGER_NAME FROM information_schema.TRIGGERS ;
mysql> SELECT EVENT_NAME FROM information_schema.EVENTS ;


Conozca sus variables de servidor

show variables like '%innodb%';
show variables like '%thread%';
show variables like '%table%';
show variables like '%buffer%';
show variables like '%cache%';


Revise sus cuentas de usuario.
¿Todos tienen contraseñas válidas.

SELECT Host, User ,
CASE
WHEN CHARACTER_LENGTH(Password) = 16 THEN 'Pre-4.1 I should update this'
WHEN CHARACTER_LENGTH(Password) > 16 THEN 'Valid password'
WHEN CHARACTER_LENGTH(Password) =0 THEN ' BLANK PASSWORD so I just do not care if people steal my stuff'
END as Password
FROM mysql.user;


Entender su archivo de registro de InnoDB y averiguar un buen tamaño del buffer.
Baron publicado sobre esto aquí: http://www.mysqlperformanceblog.com/2008/11/21/how-to-calculate-a-good-innodb-log-file-size/
Lea su correo a entender más acerca de esto. A continuación se muestra un ejemplo de cómo utilizar esta información también. He utilizado sus números para el ejemplo de ayudar. Como dijo el Barón, ejecute este cuando el tráfico es pesado para obtener información válida.

mysql>pager grep sequence; show engine innodb status\G select sleep(60); show engine innodb status\G pager;
mysql>SET @sequence1= 3836410803;
mysql>SET @sequence2= 3838334638;
mysql>select ( ( (@sequence2 - @sequence1) / 1024 / 1024 )* 60 ) /2 as innodb_log_file_size_used ;
mysql>select (@@innodb_log_file_size / 1024) / 1024 as current_log_file_MB_size;


El tamaño del buffer.
Mientras que la siguiente consulta se publica por la red y da un punto de partida válido para una agrupación de almacenamiento intermedio, también he visto algunos números no válidos o poco realista basado en el servidor que tenía. Personalmente, revise los resultados de la consulta a continuación. Revise los resultados de mayor tráfico y la cantidad de datos que está enviando a los registros por puesto de Baron. Luego tomar en cuenta la cantidad de memoria que tiene en el servidor. Cuanto más su base de datos se ejecuta en la memoria más rápida es conseguir resultados, pero hay que tener en cuenta lo demás es la base de datos haciendo. Así que usted tiene que usar su propio juicio y la investigación para conseguir un buen precio para el tamaño del buffer. Otra opción podría ser utilizar el tools.percona.com , responda a las preguntas y ver lo que te dice.


mysql>select ( ( (@sequence2 - @sequence1) / 1024 / 1024 )* 60 ) *2 as innodb_buffer_pool_GB_test ;

mysql>SELECT CONCAT(ROUND(KBS/POWER(1024,
IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.49999),
SUBSTR(' KMG',IF(PowerOf1024<0,0,
IF(PowerOf1024>3,0,PowerOf1024))+1,1)) recommended_innodb_buffer_pool_size
FROM (SELECT SUM(data_length+index_length) KBS FROM information_schema.tables
WHERE engine='InnoDB') A,
(SELECT 3 PowerOf1024) B \G



A continuación, deberá revisar esta entrada del blog arca abierta para profundizar en sus índices y más etc. Gran información sobre ese puesto y el lugar en general.
http://code.openark.org/blog/mysql/useful-database-analysis-queries-with-information_schema


Para profundizar en más datos sobre el servidor ....


¿Cuáles son los cuadros más antiguos, tal vez tenga que archivar esos?

SELECT CONCAT(`TABLE_SCHEMA`, "." , `TABLE_NAME`) as name , `UPDATE_TIME`
FROM information_schema.TABLES
WHERE TABLE_SCHEMA NOT IN ('information_schema','mysql','test','performance_schema') AND `UPDATE_TIME` IS NOT NULL ORDER BY `UPDATE_TIME` LIMIT 25;



¿Qué está tomando más espacio?

SELECT concat(table_schema,'.',table_name) table_name,
concat(round(data_length/(1024*1024),2),'M') data_length
FROM information_schema.TABLES
ORDER BY data_length DESC LIMIT 5;


Esto es sólo un punto de partida para que usted entienda lo que está pasando con el servidor. Utilice los sitios que figuran en este sitio para aprender más.

lunes, 1 de julio de 2013

MySQL 5.6 en Solaris Usando un PKG Solaris

Original post: http://anothermysqldba.blogspot.com/2013/06/mysql-56-on-solaris-using-solaris-pkg.html

El sitio MySQL.com hace un buen trabajo con la documentación sobre la instalación de MySQL en Solaris. Los hipervínculos se pueden encontrar a continuación.

Creo este post como una referencia y un ejemplo de la forma en que se haga así.
(Yo prefiero el shell bash pero eso es sólo yo ...)

bash-3.2# groupadd mysql
bash-3.2# useradd -g mysql mysql
bash-3.2# pkgadd -d mysql-5.6.12-solaris*.pkg

The following packages are available:
1 mysql MySQL Community Server (GPL)
5.6.12

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all


Ahora usted puede tomar un pequeño descanso. Solaris se necesita un poco ot proceso e instalar aquí.


Processing package instance <mysql> from </export/home/mysql-5.6.12-solaris10*.pkg>

MySQL Community Server (GPL) 5.6.12
Copyright (c) 2000, , Oracle and/or its affiliates. All rights reserved.
Use is subject to license terms.
Using </opt/mysql> as the package base directory.
## Processing package information.
## Processing system information.
1 package pathname is already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

This package contains scripts which will be executed with super-user
permission during the process of installing this package.

The selected base directory </opt/mysql> must exist before
installation is attempted.

Do you want this directory created now [y,n,?,q] y
Using </opt/mysql> as the package base directory.
## Processing package information.
## Processing system information.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

This package contains scripts which will be executed with super-user
permission during the process of installing this package.

Do you want to continue with the installation of <mysql> [y,n,?] y


Installing MySQL Community Server (GPL) as <mysql>
.....


Una vez más se deja hacer un poco de trabajo ...


......2013-06-30 17:40:12 1117 [Note] InnoDB: Starting shutdown...
2013-06-30 17:40:12 1117 [Note] InnoDB: Shutdown completed; log sequence number 1625987

A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in '/.mysql_secret'.

You must change that password on your first connect,
no other statement but 'SET PASSWORD' will be accepted.
See the manual for the semantics of the 'password expired' flag.

Also, the account for the anonymous user has been removed.

In addition, you can run:

/opt/mysql/mysql/bin/mysql_secure_installation

which will also give you the option of removing the test database.
This is strongly recommended for production servers.

See the manual for more instructions.

Please report any problems with the /opt/mysql/mysql/bin/mysqlbug script!

The latest information about MySQL is available on the web at

http://www.mysql.com

Support MySQL by buying support/licenses at http://shop.mysql.com

New default config file was created as /opt/mysql/mysql/my.cnf and
will be used by default by the server when you start it.
You may edit this file to change server settings


Installation of <mysql> was successful.


Así que ahora, siguiendo las instructins por dev.mysql.com

bash-3.2# ln /etc/init.d/mysql /etc/rc3.d/S91mysql
bash-3.2# ln /etc/init.d/mysql /etc/rc0.d/K02mysql


Así que ahora si quiero usar la base de datos tengo que pasar la contraseña de root que se ha creado dinámicamente primero. Personalmente, me gusta esta característica.


# /etc/init.d/mysql start
Starting MySQL
........ SUCCESS!
bash-3.2# ls -al /.mysql_secret
-rw------- 1 root other 96 Jun 30 17:40 /.mysql_secret
# more /.mysql_secret
# The random password set for the root user at Sun Jun 30 17:40:07 2013 (local time): c29IHIZ4


Así que vamos a iniciar sesión y cambiar la contraseña, entonces estamos listos para empezar. Francamente no tienes otra opción.


bash-3.2# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.12

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> show grants for 'root'@'localhost';
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('somepassword');
Query OK, 0 rows affected (0.04 sec)


Y eso es todo. Ahora estamos bien y listo para ir ...


mysql> exit
Bye
bash-3.2# rm -f /.mysql_secret
bash-3.2# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.12 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> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.6.12 |
+-----------+
1 row in set (0.00 sec)


Referencias | | Enlaces útiles: