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


En linux pude encontrar el directorio de instalación de mysql con el comando which mysql. Pero no pude encontrar ninguna en windows. Probé echo %path% y resultó en muchas rutas junto con ruta a mysql bin.

Quería encontrar el directorio de datos mysql desde la línea de comandos en Windows para su uso 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 ¿cómo 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 Sin embargo, puede estar instalado en cualquier unidad. Quiero que me lo devuelvan desde la línea de comandos.

Author: Prabhu, 2013-07-31

8 answers

Puede realizar 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 desea usar el directorio de datos:

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

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

Por cierto, al ejecutar which mysqlen Linux como usted dijo, no obtendrá el directorio installation en Linux. Solo obtendrá la ruta binaria, que es /usr/bin en 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 ...) a continuación, utilice la siguiente línea de comandos:

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 base de datos interna de mysql information_schema y deshabilitará la salida tabular y los encabezados de columna.

Salida en Linux:

/var/lib/mysql
 261
Author: hek2mgl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-11 13:57:04

Puedes probar esto-

mysql> select @@datadir;

PS - Funciona en todas las plataformas.

 138
Author: As_913,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-31 15:26:26

Si desea encontrar datadir en linux o Windows puede 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}'
 5
Author: Amrit Shrestha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-10 05:20:48

Salida en Windows:
solo tiene que utilizar este comando, es muy fácil!

1. no hay contraseña de MySQL:

mysql ?

2. tener contraseña de MySQL:

mysql -uroot -ppassword mysql ?

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

 1
Author: xgqfrms,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-01 20:53:32
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
Author: GigolNet Guigolachvili,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-06 00:27:39

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

Ejemplo de salida:

datadir                                     /var/lib/mysql/
 0
Author: Eugene Yarmash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-04 18:05:29

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

 0
Author: bluegrounds,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-12 14:53:24

Utilice el comando de abajo desde la interfaz CLI

[root@localhost~]# mysqladmin variables -p<password> | grep datadir
 0
Author: Rakib,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-04 06:20:17