desarrollo-web-br-bd.com

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 las ventanas. Intenté echo %path% y resultó 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 un 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. Sin embargo, podría estar instalado en cualquier unidad. Quiero que me lo devuelvan desde la línea de comandos.

173
Prabhu

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

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 necesita invertir las comillas simples y dobles .

Por cierto, cuando ejecutes which mysql en Linux como dijiste, no obtendrás 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á usando varias 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 desde la base de datos information_schema interna de mysql y deshabilitará los resultados tabulares y los encabezados de columna.

Salida en Linux:

/var/lib/mysql
280
hek2mgl

Puedes probar esto-

mysql> select @@datadir;

PS- Funciona en todas las plataformas.

144
As_913

si quieres encontrar datadir en Linux o Windows puedes hacerlo siguiendo el 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
Amrit Shrestha

Puede ver la lista completa de opciones de servidor MySQL ejecutando

mysqld --verbose --help

Por ejemplo, para averiguar la ruta al directorio data en Linux, puede ejecutar:

mysqld --verbose --help | grep ^datadir

Ejemplo de salida:

datadir                                     /var/lib/mysql/
1
Eugene Yarmash

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

1. no hay contraseña de MySQL:

mysql ?

2. tiene contraseña de MySQL:

mysql -uroot -ppassword mysql ?

 enter image description here  enter image description here

1
xgqfrms
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();

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
bluegrounds

Utilice el siguiente comando desde la interfaz CLI

[[email protected]~]# mysqladmin variables -p<password> | grep datadir
0
Rakib