Buenos días
Alguna vez os ha pasado que abrís un terminal, os conectáis al cliente de MySQL o MariaDB de desarrollo para probar alguna cosa:
1 2 3 4 5 6 7 8 9 10 11 |
mysql -uroot -p -hdev.midominio.com Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 5 Server version: x.x.x-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> |
por lo que sea abrís otro terminal, os conectáis al cliente de MySQL o MariaDB de producción
1 2 3 4 5 6 7 8 9 10 11 |
mysql -uroot -p -hprod.midominio.com Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 8052 Server version: x.x.x-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> |
y acabáis montando un carajal de la leche al borrar la base de datos de producción por error? A mi no me ha pasado (cruzo los dedos, toco madera,... ), pero es fácil que pase, ya que el prompt por defecto de MySQL o MariaDB no aporta mucha información.
Veamos como solucionarlo.
Una vez conectados a nuestro servidor de bases de datos, ejecutamos:
1 2 3 |
MariaDB [(none)]> prompt \u@\h [\d]> PROMPT set to '\u@\h [\d]>' root@dev.midominio.com [(none)]> |
1 2 3 4 5 6 7 8 9 10 11 12 |
$ export MYSQL_PS1="\u@\h [\d]> " $ mysql -uroot -p -hdev.midominio.com Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 5 Server version: x.x.x-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. root@dev.midominio.com [(none)]> |
Podemos añadir el comando de export al archivo ~/.bashrc de forma que se ejecute siempre al iniciar nuestro PC.
1 2 3 4 5 6 7 8 9 10 11 |
$ mysql --prompt="\u@\h [\d]> " -uroot -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 5 Server version: x.x.x-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. root@dev.midominio.com [(none)]> |
Con este método podemos crear un alias en el archivo ~/.bashrc de la siguiente forma:
1 |
alias mysql='mysql --prompt="\u@\h [\d]> " ' |
A partir de entonces llamaremos a MySQL/MariaDB de la forma habitual:
1 2 3 4 5 6 7 8 9 10 11 |
$ mysql -uroot -p -hdev.midominio.com Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 5 Server version: x.x.x-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. root@dev.midominio.com [(none)]> |
Editamos el archivo de configuración de MySQL/MariaDB
1 |
$ sudo nano /etc/mysql/my.cnf |
Buscamos la sección mysql y añadimos
1 2 |
[mysql] prompt=\\u@\\h [\\d]>\\_ |
Reiniciamos el servidor para que coja los cambios y nos conectamos de nuevo.
1 2 3 4 5 6 7 8 9 10 11 |
$ mysql -uroot -p -hdev.midominio.com Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 5 Server version: x.x.x-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. root@dev.midominio.com [(none)]> |
Ahora que hemos visto como configurar el prompt, veamos como podemos personalizarlo con las siguientes variables:
Variables genéricas:
- \S muestra un punto y coma
- \’ muestra comillas simples
- \” muestra comillas dobles
- \v muestra la versión del servidor
- \p muestra el puerto de conexión
- \\ Muestra una barra invertida
- \n Inserta un salto de linea
- \t Inserta una fabulación
- \ Inserta un espacio (debe haber un espacio en blanco después de \ )
- \_ Inserta un espacio (debe haber un _ después de \ )
- \d Muestra la base de datos por defecto
- \h Muestra el nombre del servidor
- \c Muestra un contador de sentencias ejecutadas. Continua aumentando a medida que introducimos comandos.
- \u Muestra el usuario
- \U Muestra el nombre de la cuenta de usuario en el formato usuario@servidor
Variables de fecha:
- \D Muestra la fecha actual
- \w Muestra el día de la semana con tres letras (e.g. Mon, Tue, Wed,...)
- \y Muestra el año con dos dígitos
- \Y Muestra el año con cuatro dígitos
- \o Muestra el mes en numeros
- \O Muestra el mes con tres letras (e.g. Jan, Feb, Mar,...)
- \R Muestra la hora actual en formato 24h
- \r Muestra la hora actual en formato 12h
- \m Muestra los minutos actuales
- \s Muestra los segundos actuales
- \P Muestra AM o PM
Otra forma visual de saber en que entorno estamos es añadirle colores al prompt. Esta forma unicamente la he probado con el método para cambiar el prompt desde la linea de comando, con un alias de bashrc.
Modificamos el alias que habíamos creado dejándolo de la siguiente manera:
1 |
alias mysql=$(echo -e 'mysql --prompt="\001\x1B[31m\002\\u\001\x1B[34m\002@\001\x1B[32m\002\\h\001\x1B[0m\002:\001\x1B[36m\002\\d>\001\x1B[0m\002 "') |