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.
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
Puedes probar esto-
mysql> select @@datadir;
PS- Funciona en todas las plataformas.
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}'
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/
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.
Utilice el siguiente comando desde la interfaz CLI
[[email protected]~]# mysqladmin variables -p<password> | grep datadir