Comandos Mysql
Transcript of Comandos Mysql
About NomikOS – BLOG.CONTACTO – Escríbeme!.Proyectos y Trabajos.Indice de artículosHome
Linux && PHP @ NomikOS – BLOG
Artículos y temas sobre programación web:Linux, PHP, jQuery, CodeIgniter/Kohana y mistrabajos en linea en RAC. Igor Parra Bastias –NomikOS
May
292009
Uso de la linea de comando para MySQL.Escrito por NomikOS el 29/May/2009 | 15 visitas
photo credit: dmuth
Esto es un tutorial introductorio (bastante bueno me permito decir). Si quieresuna excelente lista de consulta rápida de comandos http://www.pantz.org/software/mysql/mysqlcommands.html
MySQL dispone de una interface/shell llamada mysql. Con ella podrásinteractuar en forma rápida con tus bases de datos, especialmente si accades aun servidor remoto, como es el caso de servidores web.
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
1 de 17 07/06/10 07:26
Tiene capacidades readline lo que fundamentalmente te permite recorrer elhistorial de entradas/comandos usando las teclas de cursor (arriba y abajo) yautocompletación usando [TAB].
En adelante suponemos:
fanquito: nombre de usuario.mibd: nombre de una base de datos.mipassword: tu password de acceso a MySQL (Esta password no esnecesariamente la misma de la de tu cuenta de usuario).Las mayúsculas no son obligatorias aunque son muy usadas para mayorclaridad como ya verás.
Acceso a la linea de comando
Simplemente escribe mysql.
12345678
$ mysql [ENTER]Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 22Server version: 5.0.75-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Asi es, tu prompt es ahora mysql>. Y como muy amigablemente te recibe escon un: Tipée help si necesita ayuda.
Super valiosa ayuda para usar lalinea de comando
Simplemente escribe help.
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
2 de 17 07/06/10 07:26
12345678910111213141516171819
mysql> help
For information about MySQL products and services, visit: http://www.mysql.com/For developer information, including the MySQL Reference Manual, visit: http://dev.mysql.com/To buy MySQL Network Support, training, or other products, visit: https://shop.mysql.com/
List of all MySQL commands:Note that all text commands must be first on line and end with ';'? (\?) Synonym for 'help'.clear (\c) Clear command.connect (\r) Reconnect to the server. Optional arguments are db/host.... (varios comandos) ...
For server side help, type 'help contents'
mysql>
De aquí aprendemos 2 cosas muy importantes:
Para ejecutar un comando debes terminar su enunciado con un punto y coma(;) y [ENTER]. Puedes escribir en varias lineas. El shell te responderá en cadanueva linea con el símbolo (->) que significa que aún espera el punto y coma.Y lejos, lo mejor: Te dice que si de verdad quieres ayuda tipées help contents.
Simplemente escribe help contents.
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
3 de 17 07/06/10 07:26
1234567891011121314151617181920212223242526272829303132333435363738394041424344
# ayuda en generalmysql> help contentsYou asked for help about help category: "Contents"For more information, type 'help <item>', where <item> is one of thefollowing categories: Account Management Administration Data Definition Data Manipulation Data Types Functions Functions and Modifiers for Use with GROUP BY Geographic Features Language Structure Storage Engines Stored Routines Table Maintenance Transactions Triggers
# ayuda sobre comandos de adminstraciónmysql> help administrationYou asked for help about help category: "Administration"For more information, type 'help <item>', where <item> is one of thefollowing topics: DESCRIBE FLUSH QUERY CACHE HELP COMMAND HELP STATEMENT
# ayuda sobre comando DESCRIBEmysql> help describeName: 'DESCRIBE'Description:Syntax:{DESCRIBE | DESC} tbl_name [col_name | wild]
DESCRIBE provides information about the columns in a table. It is ashortcut for SHOW COLUMNS FROM. As of MySQL 5.0.1, these statementsalso display information for views. (See [HELP SHOW COLUMNS].)
URL: http://dev.mysql.com/doc/refman/5.0/en/describe.html
mysql>
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
4 de 17 07/06/10 07:26
Creación de una cuenta de usuariopara MySQL
MySQL tiene un subconjunto propio de usuarios y estos deben ser creadosexplícitamente.
1234
# sólo en MySQL 5.0.2+# para versiones anteriores usa GRANTCREATE USER fanquito IDENTIFIED BY 'mipassword';Query OK, 0 rows affected (0.01 sec)
Esto crea una cuenta identificada como fanquito (aqui cuenta y usuario sonsinónimos) en localhost, que es el host donde te encuentras ahora mismo, y eslo que la mayor parte de las veces necesitarás. Este nuevo usuario no tieneningún privilegio, estos se asignan con GRANT. Luego este comando “CREATEUSER” puedes servirte para crear una lista de usuarios de los cuales aún nosabes que tareas van a realizar. La forma más realista de crear nuevos usuarioses con GRANT.
Creación de una cuenta de usuariopara MySQL con el comando GRANT
GRANT permite crear usuarios y asignarle privilegios al mismo tiempo.
A todo esto los privilegios determinan que operaciones puedes realizar en quebases de datos (y sus tablas). Por ejemplo:
SELECT: leer.INSERT: escribir.DELETE: borrar.UPDATE: actualizar.
Veamos:
12345
# crear el usuario "fanquito2" con password "mipassword"# que pueda leer y reescribir registros en todas las tablas de midbmysql> GRANT SELECT, UPDATE, DELETE ON midb.* TO fanquito2 IDENTIF-> by 'mipassword';Query OK, 0 rows affected (0.01 sec)
Si el usuario ya existe sólo asigna/reasigna los nuevos privilegios y en este caso
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
5 de 17 07/06/10 07:26
no es necesario agregar “IDENTIFIED by ‘mipassword’”.Mirando más de cerca el enunciado. “ON midb.*” determina donde seráefectivos los privilegios.
Usa:
*.* para todas las bases de datos.midb.mitabla para especificar sólo cierta tabla.
Si un usuario ha metido la pata, como por ejemplo, borrando todos losregistros de una tabla de acceso colectivo (shú) le puedes dar una buenapatada así:
1234
# revocar todos los privilegios en toda la base de datos# para el usuario fanquito2mysql> REVOKE * ON rac.* FROM fanquito2;Query OK, 0 rows affected (0.01 sec)
Si sólo quieres quitarle la posibilidad de seguir cambiando el estado de la basede datos:
1234567891011121314
# averiguar que privilegios tiene el manos de hachamysql> SHOW GRANTS FOR fanquito2;+----------------------------------------------------------------------+| Grants for fanquito2@% |+----------------------------------------------------------------------+| GRANT USAGE ON *.* TO 'fanquito2'@'%' IDENTIFIED BY PASSWORD '*CE| GRANT SELECT, UPDATE, DELETE ON `midb`.* TO 'fanquito2'@'%' +----------------------------------------------------------------------+3 rows in set (0.00 sec)
# revocar privilegios de escritura# para el usuario fanquito2mysql> REVOKE UPDATE, DELETE ON rac.* FROM fanquito2;Query OK, 0 rows affected (0.00 sec)
Muy bien. Con eso debiera dejar de dar problemas el susodicho. Ahora si quesi se trataba de la tabla con los datos de lo me debes:
123
# borrar cuenta/usuario fanquito2mysql> DROP USER fanquito2;Query OK, 0 rows affected (0.01 sec)
Datos comunes en scripts PHP
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
6 de 17 07/06/10 07:26
referentes a bases de datos
El script necesita saber tus datos de usuario en la base de datos para poderacceder en tu nombre. Generalmente se definen en una manera parecida aesta:
12345678
define('DB_TYPE', 'mysql');define('DB_NAME', 'midb');# en el mismo servidordefine('DB_HOST', 'localhost');# en la base de datos sudb un servidor remotodefine('DB_HOST', 'sudb.servidorremoto.com');define('DB_USER', 'fanquito');define('DB_PASS', 'mipassword');
La palabra reservada “define” es propia de PHP y asigna contantes. Estas adiferencia de las variables son superglobales o sea pueden ser accedidas desdecualquier función/clase (y no pueden ser redefinidas posteriormente).
Importación y exportación de tablasy bases de datos
Para empezar (que ingenuo fuí), una ventaja insuperable y que yocomúnmente aprovecho, por sobre una interface web como phpmyadmin, es lavelocidad con que puedes importar y exportar tablas y bases de datos enteras.
1234567891011
# importar archivo sql# no importa la extension sql. sólo debe ser un archivo de texto# con instrucciones entendibles por MySQLmysql -uroot -pmipassword mibd < tubd.sql
# exportar base de datos entera a archivo sql# sabiamente agregamos .sql pero no es necesariomysqldump -u root -pmipassword mibd > midb.sql
# exportar sólo una tablamysqldump -uroot -p mibd mitabla> mitabla.sql
Fíjate que en el ultimo comando no escribimos la password, sólo “-p”. Esto esmuy bueno si quieres mantener oculta tu password, tanto de ojos sobre tuhombro (como cuando aparecen sólo asteriscos en una página web) como de
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
7 de 17 07/06/10 07:26
los logs del servidor.
123
# usando la opción -p podrás ingresar tu password en una manera segura$ mysqldump -uroot -p mibd mitabla> mitabla.sqlEnter password:
Personalmente creo que en un ambiente distendido de trabajo como porejemplo, el manejo normal de tu blog, es lícito escribir tu password en la lineade comando para posteriormente usar history y ejecutar comandosrápidamente. Depende de tí.
Comandos muy usados paraconsultar tus tablas
Vuelvo a decir que esta es la manera ideal de trabajar si quieres terminarantes de las 5 de la tarde para alcanzar a tomarte una cerveza antes de quellegue la noche.
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
8 de 17 07/06/10 07:26
123456789101112131415161718192021222324252627282930313233343536373839404142434445
# mostrar todas las bases de datosmysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || mibd |+--------------------+4 rows in set (0.00 sec)
# trabajar con una en particularmysql> use mibd;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A
Database changed
# mostrar sus tablasmysql> show tables;+---------------------------------------------+| Tables_in_rac |+---------------------------------------------+| data_control || data_record1 || data_record2 || data_source || data_status_autotrader_control || data_status_ebay_control || data_status_exchangeandmart_control || data_status_fish4_control |+---------------------------------------------+8 rows in set (0.00 sec)
# mostrar estructura de una tabla en particularmysql> describe data_control;+--------------+-------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+--------------+-------------+------+-----+---------+----------------+| id | int(11) | NO | PRI | NULL | auto_increment || shedule_on | tinyint(1) | NO | | 0 | || admin | varchar(20) | NO | | | || password | varchar(32) | NO | | | || data | tinyint(1) | NO | | 1 | |+--------------+-------------+------+-----+---------+----------------+
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
9 de 17 07/06/10 07:26
Definir password de root
Aclaremos que este root se refiere al usuario root del conjunto de usuarios deMySQL y no del sistema operativo. Son distintos. Cuando se instala MySQLviene el usuario root predefinido y sin password.
123456789
# definir una password para root# primero seleccionamos la bases de datos "mysql"# esta es parte de MySQL y siempre existemysql> USE mysql;
mysql> UPDATE user SET password=PASSWORD("mipassword") WHERE use
# recargar cache interno de MySQLmysql> FLUSH PRIVILEGES;
Recuperar password de root
Sin comentarios.Para esto debes ser root en el sistema operativo de tal manera que puedasreiniciar el demonio mysqld.
Te daré los pasos calcados. Haz lo mismo que yo nena.
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
10 de 17 07/06/10 07:26
12345678910111213141516171819202122232425262728293031323334353637383940
mysql> cabeza de pollo de nuevo olvidaste tu password >:(
# asumir privilegios de rootsu[ENTER]password:
# parar mysld$ service stop mysqldStopping the mysqld service
# iniciar mysqld sin cargar tabla de privilegios$ mysqld_safe --skip-grant-tables &Starting mysqld daemon with databases from /var/lib/mysql
$ mysql -urootERROR 2002 (HY000): Can't connect to local MySQL server throughsocket '/var/run/mysql/mysql.sock' (2)
# si, no es na' así# dijo clarito: Starting mysqld daemon with databases from /var/lib/mysql
$ cd /var/lib/mysql/$ mysql -urootWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 1Server version: 5.0.75-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
# reasignar password para rootmysql> UPDATE user SET password=PASSWORD("mipassword") WHERE usQuery OK, 3 rows affected (0.01 sec)Rows matched: 3 Changed: 3 Warnings: 0
# abandonar la linea de comandomysql> exit
# reiniciar mysqld[17:47:40 root@zenwalk]$ service restart mysqldRestarting the mysqld service
Muy bien, me he alargado bastante en esto que sólo iba a ser unaentrentención mañanera antes de trabajar de veras. Así que ponte con unoscomentarios tú también, vale, colega?
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
11 de 17 07/06/10 07:26
Rescatando posts terremoteados. | Linux && PHP @ NomikOS –BLOG:
[...] Uso de la linea de comando para MySQL. Escrito por NomikOSen Personal, June 3 – 2010 @ 11:10 hrs. | 2 visitas [...]
WordPress 2.9.2The Incutio XML-RPC PHP Library -- WordPress/2.9.2
Posts relacionados:
Uso de su y sudo para simular al usuario root.1.
Escrito por NomikOS en MySQL-DB, May 29 - 2009 @ 10:51 hrs. | 15 visitas
Post anteriorEncontrar URL de radios dentrode páginas web usando wget yless.
Post siguienteUso del administrador de archivos"midnight-commander" y "gnome-
commander" en linux – Tutorial.
1 comentario
Pingback | June 3, 2010 @ 11:20
RSS feed para comentarios en este post
TrackBack URL
Deja un comentario
Nombre (req.)
E-mail (req.)
Sitio web
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
12 de 17 07/06/10 07:26
XHTML: Etiquetas permitidas: <a href="" title=""> <abbr title=""> <acronym title=""> <b>
<blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike>
<strong>
Cuando este individuo no está programando para hacer de tumundo un lugar mejor, es que le estan obligado a beber y aotras peripecias similares.
Contrátame en:
Rent A Coder: How Software Gets Done
Proyectos en GitHub:
Usuario: NomikOSPúblico: Recover-admin-privileges-in-Wordpress* wp-get-admin.php - Un script PHP --no un plugin-- que crea un
usuario con privilegios de administrador en Wordpress
Páginas:
About NomikOS – BLOG.CONTACTO – Escríbeme!.Indice de artículosProyectos y Trabajos.
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
13 de 17 07/06/10 07:26
Posts Recientes:
* Campos extras en buddypress* Netbeans no tiene word wrap… What?* Sobreescribiendo archivos de sólo lectura en vi.* midnight-commander – login automático en FTP usando .netrc* Herramientas para programación web – Aardvark* Narración de Arthur Gordon Pym – Edgar Allan Poe (Podcast en 6capítulos)* midnight-commander – FTP/Secure FTP* Linux – Humor gráfico.* Rescatando posts terremoteados > lost+found.* Función PHP para obtener IP del cliente.
Más visitados hoy:
* Yum y repositorios centosplus y RPMforge/DAG en Centos.4 view(s) | posted on May 31, 2010* Codificación de caracteres: UTF-8 o ISO-8859-1.4 view(s) | posted on May 24, 2010* Actualizando php 5.2 en Centos 5.2 view(s) | posted on October 1, 2009* Uso de comando mail en linux.2 view(s) | posted on April 29, 2009* Listando directorios con tree (sin olvidar a midnight-commander) en la línea de comandos.1 view(s) | posted on May 25, 2010
Más visitados general:
Desde: 03/junio/2010
* Actualizando php 5.2 en Centos 5.28 view(s) | posted on October 1, 2009* Codificación de caracteres: UTF-8 o ISO-8859-1.22 view(s) | posted on May 24, 2010
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
14 de 17 07/06/10 07:26
* Yum y repositorios centosplus y RPMforge/DAG en Centos.22 view(s) | posted on May 31, 2010* Uso de comando mail en linux.13 view(s) | posted on April 29, 2009* Script para borrar una línea o sustituir texto en varios archivosusando sed.13 view(s) | posted on May 23, 2010
Categorias:
Ciencia Ficción (2)Computación (11)Firefox (4)Herramientas para programación web (2)jQuery y OOP Javascript (2)Linux (30)
Comandos (5)MySQL-DB (1)Personal (14)PHP (15)Tips y trucos cortos (3)Uncategorized (2)Wordpress/Buddypres (5)
Blogroll en Vivo!
El Blog de Enrique DansYo lo hago. ¿Tú lo haces?just recently by Enrique Dans
Just SherekanVim en tu Firefox con Vimperator234 days ago by Sherekan
Acerca de UbuntuProgramas para resolver mapas de Karnaugh y circuitoslógicos8 days ago by Sofía Vitale
UbuntronicsAmarok no reproduce nada15 hrs ago by Javier
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
15 de 17 07/06/10 07:26
Encuéntrame en:
Rent A Coder: How Software Gets Done
Webmaster World: News and Discussion for the Web Professional
SlackwareCL: Grupo Usuarios Slackware Linux Chile
Facebook: Red social que conecta amigos y familiares (y ex)
last.fm: A music service that learns what you love...
Software que uso:
LinuxGeany editor: A fast and lightweight IDE
GNOME Commander: A fast and powerful file manager for the
GNOME desktop
Kohana: Swift, Secure, and Small PHP 5 Framework
cURL: A command line tool for transferring files with URL syntax
Centos: The Community ENTerprise Operating System
Zenwalk linux: Ever tried zen computing?
MS-Windows ®Editplus+ editor: Internet-ready text editor
Total commander: Shareware file manager
PuTTY: A Free Telnet/SSH Client
Duke Nukem 3D: That's right baby. Take some ca$h y deja un buen
comentario antes de marcharte.
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
16 de 17 07/06/10 07:26
motor: WordPress. tema: TheBuckmaker modificado por NomikOS.
Uso de la linea de comando para MySQL. | Linu... http://nomikos.info/2009/05/29/uso-de-la-linea-d...
17 de 17 07/06/10 07:26