Cómo encontrar el directorio de datos mysql desde la línea de comandos en windows


186

En linux pude encontrar el directorio de instalación de mysql con el comando which mysql. Pero no pude encontrar ninguno en Windows. Lo intenté echo %path%y resultó en muchos caminos junto con el camino a mysql bin.

Quería encontrar el directorio de datos mysql desde la línea de comandos en Windows para usar en el programa por lotes. También me gustaría encontrar el directorio de datos mysql desde la línea de comandos de Linux. ¿Es posible? o como podemos hacer eso?

En mi caso, el directorio de datos mysql está en la carpeta de instalación, es decir ..MYSQL\mysql server 5\data, podría estar instalado en cualquier unidad. Quiero que me lo devuelvan desde la línea de comando.

Respuestas:


298

Puede emitir la siguiente consulta desde la línea de comandos:

mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name LIKE "%dir"'

Salida (en Linux):

+---------------------------+----------------------------+
| Variable_name             | Value                      |
+---------------------------+----------------------------+
| basedir                   | /usr                       |
| character_sets_dir        | /usr/share/mysql/charsets/ |
| datadir                   | /var/lib/mysql/            |
| innodb_data_home_dir      |                            |
| innodb_log_group_home_dir | ./                         |
| lc_messages_dir           | /usr/share/mysql/          |
| plugin_dir                | /usr/lib/mysql/plugin/     |
| slave_load_tmpdir         | /tmp                       |
| tmpdir                    | /tmp                       |
+---------------------------+----------------------------+

Salida (en macOS Sierra):

+---------------------------+-----------------------------------------------------------+
| Variable_name             | Value                                                     |
+---------------------------+-----------------------------------------------------------+
| basedir                   | /usr/local/mysql-5.7.17-macos10.12-x86_64/                |
| character_sets_dir        | /usr/local/mysql-5.7.17-macos10.12-x86_64/share/charsets/ |
| datadir                   | /usr/local/mysql/data/                                    |
| innodb_data_home_dir      |                                                           |
| innodb_log_group_home_dir | ./                                                        |
| innodb_tmpdir             |                                                           |
| lc_messages_dir           | /usr/local/mysql-5.7.17-macos10.12-x86_64/share/          |
| plugin_dir                | /usr/local/mysql/lib/plugin/                              |
| slave_load_tmpdir         | /var/folders/zz/zyxvpxvq6csfxvn_n000009800002_/T/         |
| tmpdir                    | /var/folders/zz/zyxvpxvq6csfxvn_n000009800002_/T/         |
+---------------------------+-----------------------------------------------------------+

O si solo quieres usar el directorio de datos:

mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir"'

Estos comandos también funcionan en Windows, pero debe invertir las comillas simples y dobles .

Por cierto, cuando ejecutas which mysqlen Linux como dijiste, no obtendrás el directorio de instalación en Linux. Solo obtendrá la ruta binaria, que está /usr/binen Linux, pero verá que la instalación de mysql está utilizando múltiples carpetas para almacenar archivos.


Si necesita el valor de datadir como salida, y solo eso, sin encabezados de columna, etc., pero no tiene un entorno GNU (awk | grep | sed ...), use la siguiente línea de comando:

mysql -s -N -uUSER -p information_schema -e 'SELECT Variable_Value FROM GLOBAL_VARIABLES WHERE Variable_Name = "datadir"'

El comando seleccionará el valor solo de la information_schemabase de datos interna de mysql y deshabilitará la salida tabular y los encabezados de columna.

Salida en Linux:

/var/lib/mysql

Usé mysql -uroot -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir" | grep "datadir" | awk "{print $ 2}" 'para encontrar la ruta real de datadir en linux. ¿Cómo puede encontrar solo ese camino en Windows?
Prabhu

1
@Prabhu Puedes hacerlo solo con el mysqlcomando. No se requieren otras herramientas. Comprueba mi actualización
hek2mgl

El comando se ejecuta ok en linux. No se ejecuta bien en Windows XP. el primer comando da error: tiene un error en su sintaxis sql cerca de donde Variable_Name = 'dirname'. El segundo comando produce un error: información desconocida de la base de datos
esquema

1
Para que esto funcione en Windows, simplemente invierta las comillas dobles / simples:mysql -uUSER -p -e "SHOW VARIABLES WHERE Variable_Name LIKE '%dir'"
Leonardo Herrera

1
¡Gracias por esto! Ejecutando "SHOW VARIABLES WHERE Variable_Name =" datadir ""; en mi base de datos phpmyadmin me ayudó a encontrar la ubicación del directorio de la base de datos.
Aurgho Bhattacharjee


5

si quieres encontrar datadir en linux o windows puedes hacer el siguiente comando

mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir"'

si está interesado en encontrar datadir, puede usar el comando grep & awk

mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir"' | grep 'datadir' | awk '{print $2}'

1

Salida en Windows:
puede usar este comando, ¡es muy fácil!

1. sin contraseña de MySQL:

mysql ?

2. tener contraseña de MySQL:

mysql -uroot -ppassword mysql ?

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí


1

Puede ver la lista completa de opciones del servidor MySQL ejecutando

mysqld --verbose --help

Por ejemplo, para encontrar la ruta al directorio de datos en Linux, puede ejecutar:

mysqld --verbose --help | grep ^datadir

Salida de ejemplo:

datadir                                     /var/lib/mysql/

0
public function variables($variable="")
{
  return empty($variable) ? mysql_query("SHOW VARIABLES") : mysql_query("SELECT @@$variable");
}

/*get datadir*/
$res = variables("datadir");

/*or get all variables*/
$res = variables();

0

Compruebe si el Datadirectorio está en "C:\ProgramData\MySQL\MySQL Server 5.7\Data". Aquí es donde está en mi computadora. Alguien puede encontrar esto útil.


0

Utilice el siguiente comando desde la interfaz CLI

[root@localhost~]# mysqladmin variables -p<password> | grep datadir
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.