comandos mysql

Download Comandos Mysql

Post on 20-Nov-2014

255 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

Uso de la linea de comando para MySQL. | Linu...

http://nomikos.info/2009/05/29/uso-de-la-linea-d...

About NomikOS BLOG. CONTACTO Escrbeme!. Proyectos y Trabajos. Indice de artculos Home

Linux && PHP @ NomikOS BLOGArtculos y temas sobre programacin web: Linux, PHP, jQuery, CodeIgniter/Kohana y mis trabajos en linea en RAC. Igor Parra Bastias NomikOSMay

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 quieres una excelente lista de consulta rpida de comandos http://www.pantz.org /software/mysql/mysqlcommands.html

MySQL dispone de una interface/shell llamada mysql. Con ella podrs interactuar en forma rpida con tus bases de datos, especialmente si accades a un servidor remoto, como es el caso de servidores web.1 de 17 07/06/10 07:26

Uso de la linea de comando para MySQL. | Linu...

http://nomikos.info/2009/05/29/uso-de-la-linea-d...

Tiene capacidades readline lo que fundamentalmente te permite recorrer el historial de entradas/comandos usando las teclas de cursor (arriba y abajo) y autocompletacin 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 es necesariamente la misma de la de tu cuenta de usuario). Las maysculas no son obligatorias aunque son muy usadas para mayor claridad como ya vers.

Acceso a la linea de comandoSimplemente escribe mysql. 1 $ mysql [ENTER] 2 Welcome to the MySQL monitor. Commands end with ; or \g. 3 Your MySQL connection id is 22 4 Server version: 5.0.75-log Source distribution 5 6 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 7 8 mysql> Asi es, tu prompt es ahora mysql>. Y como muy amigablemente te recibe es con un: Tipe help si necesita ayuda.

Super valiosa ayuda para usar la linea de comandoSimplemente escribe help.

2 de 17

07/06/10 07:26

Uso de la linea de comando para MySQL. | Linu...

http://nomikos.info/2009/05/29/uso-de-la-linea-d...

1 mysql> help 2 3 For information about MySQL products and services, visit: 4 http://www.mysql.com/ 5 For developer information, including the MySQL Reference Manual, visit: 6 http://dev.mysql.com/ 7 To buy MySQL Network Support, training, or other products, visit: 8 https://shop.mysql.com/ 9 10 List of all MySQL commands: 11 Note that all text commands must be first on line and end with ';' 12 ? (\?) Synonym for 'help'. 13 clear (\c) Clear command. 14 connect (\r) Reconnect to the server. Optional arguments are db/host. 15 ... (varios comandos) ... 16 17 For server side help, type 'help contents' 18 19 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 cada nueva linea con el smbolo (->) que significa que an espera el punto y coma. Y lejos, lo mejor: Te dice que si de verdad quieres ayuda tipes help contents. Simplemente escribe help contents.

3 de 17

07/06/10 07:26

Uso de la linea de comando para MySQL. | Linu...

http://nomikos.info/2009/05/29/uso-de-la-linea-d...

1 # ayuda en general 2 mysql> help contents 3 You asked for help about help category: "Contents" 4 For more information, type 'help ', where is one of the 5 following categories: 6 Account Management 7 Administration 8 Data Definition 9 Data Manipulation 10 Data Types 11 Functions 12 Functions and Modifiers for Use with GROUP BY 13 Geographic Features 14 Language Structure 15 Storage Engines 16 Stored Routines 17 Table Maintenance 18 Transactions 19 Triggers 20 21 # ayuda sobre comandos de adminstracin 22 mysql> help administration 23 You asked for help about help category: "Administration" 24 For more information, type 'help ', where is one of the 25 following topics: 26 DESCRIBE 27 FLUSH QUERY CACHE 28 HELP COMMAND 29 HELP STATEMENT 30 31 # ayuda sobre comando DESCRIBE 32 mysql> help describe 33 Name: 'DESCRIBE' 34 Description: 35 Syntax: 36 {DESCRIBE | DESC} tbl_name [col_name | wild] 37 38 DESCRIBE provides information about the columns in a table. It is a 39 shortcut for SHOW COLUMNS FROM. As of MySQL 5.0.1, these statements 40 also display information for views. (See [HELP SHOW COLUMNS].) 41 42 URL: http://dev.mysql.com/doc/refman/5.0/en/describe.html 43 44 mysql>4 de 17 07/06/10 07:26

Uso de la linea de comando para MySQL. | Linu...

http://nomikos.info/2009/05/29/uso-de-la-linea-d...

Creacin de una cuenta de usuario para MySQLMySQL tiene un subconjunto propio de usuarios y estos deben ser creados explcitamente. 1 # slo en MySQL 5.0.2+ 2 # para versiones anteriores usa GRANT 3 CREATE USER fanquito IDENTIFIED BY 'mipassword'; 4 Query OK, 0 rows affected (0.01 sec) Esto crea una cuenta identicada como fanquito (aqui cuenta y usuario son sinnimos) en localhost, que es el host donde te encuentras ahora mismo, y es lo que la mayor parte de las veces necesitars. Este nuevo usuario no tiene ningn privilegio, estos se asignan con GRANT. Luego este comando CREATE USER puedes servirte para crear una lista de usuarios de los cuales an no sabes que tareas van a realizar. La forma ms realista de crear nuevos usuarios es con GRANT.

Creacin de una cuenta de usuario para MySQL con el comando GRANTGRANT permite crear usuarios y asignarle privilegios al mismo tiempo. A todo esto los privilegios determinan que operaciones puedes realizar en que bases de datos (y sus tablas). Por ejemplo: SELECT: leer. INSERT: escribir. DELETE: borrar. UPDATE: actualizar. Veamos: 1 # crear el usuario "fanquito2" con password "mipassword" 2 # que pueda leer y reescribir registros en todas las tablas de midb 3 mysql> GRANT SELECT, UPDATE, DELETE ON midb.* TO fanquito2 IDENTIF 4 -> by 'mipassword'; 5 Query OK, 0 rows affected (0.01 sec) Si el usuario ya existe slo asigna/reasigna los nuevos privilegios y en este caso5 de 17 07/06/10 07:26

Uso de la linea de comando para MySQL. | Linu...

http://nomikos.info/2009/05/29/uso-de-la-linea-d...

no es necesario agregar IDENTIFIED by mipassword. Mirando ms de cerca el enunciado. ON midb.* determina donde ser efectivos los privilegios. Usa: *.* para todas las bases de datos. midb.mitabla para especificar slo cierta tabla. Si un usuario ha metido la pata, como por ejemplo, borrando todos los registros de una tabla de acceso colectivo (sh) le puedes dar una buena patada as: 1 # revocar todos los privilegios en toda la base de datos 2 # para el usuario fanquito2 3 mysql> REVOKE * ON rac.* FROM fanquito2; 4 Query OK, 0 rows affected (0.01 sec) Si slo quieres quitarle la posibilidad de seguir cambiando el estado de la base de datos: 1 # averiguar que privilegios tiene el manos de hacha 2 mysql> SHOW GRANTS FOR fanquito2; 3 +----------------------------------------------------------------------+ 4 | Grants for fanquito2@% | 5 +----------------------------------------------------------------------+ 6 | GRANT USAGE ON *.* TO 'fanquito2'@'%' IDENTIFIED BY PASSWORD '*CE 7 | GRANT SELECT, UPDATE, DELETE ON `midb`.* TO 'fanquito2'@'%' 8 +----------------------------------------------------------------------+ 9 3 rows in set (0.00 sec) 10 11 # revocar privilegios de escritura 12 # para el usuario fanquito2 13 mysql> REVOKE UPDATE, DELETE ON rac.* FROM fanquito2; 14 Query OK, 0 rows affected (0.00 sec) Muy bien. Con eso debiera dejar de dar problemas el susodicho. Ahora si que si se trataba de la tabla con los datos de lo me debes: 1 # borrar cuenta/usuario fanquito2 2 mysql> DROP USER fanquito2; 3 Query OK, 0 rows affected (0.01 sec)

Datos comunes en scripts PHP6 de 17 07/06/10 07:26

Uso de la linea de comando para MySQL. | Linu...

http://nomikos.info/2009/05/29/uso-de-la-linea-d...

referentes a bases de datosEl script necesita saber tus datos de usuario en la base de datos para poder acceder en tu nombre. Generalmente se definen en una manera parecida a esta: 1 define('DB_TYPE', 'mysql'); 2 define('DB_NAME', 'midb'); 3 # en el mismo servidor 4 define('DB_HOST', 'localhost'); 5 # en la base de datos sudb un servidor remoto 6 define('DB_HOST', 'sudb.servidorremoto.com'); 7 define('DB_USER', 'fanquito'); 8 define('DB_PASS', 'mipassword'); La palabra reservada dene es propia de PHP y asigna contantes. Estas a diferencia de las variables son superglobales o sea pueden ser accedidas desde cualquier funcin/clase (y no pueden ser redenidas posteriormente).

Importacin y exportacin de tablas y bases de datosPara empezar (que ingenuo fu), una ventaja insuperable y que yo comnmente aprovecho, por sobre una interface web como phpmyadmin, es la velocidad con que puedes importar y exportar tablas y bases de datos enteras. 1 # importar archivo sql 2 # no importa la extension sql. slo debe ser un archivo de texto 3 # con instrucciones entendibles por MySQL 4 mysql -uroot -pmipassword mibd < tubd.sql 5 6 # exportar base de datos entera a archivo sql 7 # sabiamente agregamos .sql pero no es necesario 8 mysqldump -u root -pmipassword mibd > midb.sql 9 10 # exportar slo una tabla 11 mysqldump -uroot -p mibd mitabla> mitabla.sql Fjate que en el ultimo comando no escribimos la password, slo -p. Esto es muy bueno si quieres mantener oculta tu password, tanto de ojos sobre tu hombro (como cuando aparecen slo asteriscos en una pgina web) como de7 de 17 07/06/10 07:26

Uso de la linea de comando para MySQL. | Linu...

http://nomikos.info/2009/05/29/uso-de-la-linea-d...

los logs del servidor. 1 # usando la opcin -p podrs ingresar tu password en una manera segura 2 $ mysqldump -uroot -p mibd mitabla> mitabla.sql 3 Enter password: Personalmente creo que e

Recommended

View more >