lista - Cómo encontrar el directorio de datos mysql desde la línea de comandos en Windows
iniciar mysql (8)
Compruebe si el directorio de Data
está en "C:/ProgramData/MySQL/MySQL Server 5.7/Data"
. Aquí es donde está en mi computadora. Alguien puede encontrar esto útil.
En Linux pude encontrar el directorio de instalación de MySQL con el comando which mysql
. Pero no pude encontrar ninguno en Windows. Probé echo %path%
y resultó en muchas rutas junto con la ruta 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 ¿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, podría estar instalado en cualquier unidad. Quiero que sea devuelto desde la línea de comando.
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 el uso del directorio de datos:
mysql -uUSER -p -e ''SHOW VARIABLES WHERE Variable_Name = "datadir"''
Esto funcionará en Windows también.
Por cierto, al ejecutar which mysql
en Linux como dijiste, no obtendrás el directorio de instalación en Linux. Solo obtendrá la ruta binaria, que es /usr/bin
en Linux, pero verá que la instalación de MySQL está utilizando 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 ...), utilice 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 base de datos information_schema
interna de mysql y deshabilitará el resultado tabular y los encabezados de columna.
Salida en Linux:
/var/lib/mysql
Puede ver la lista completa de las opciones del servidor MySQL ejecutando
mysqld --verbose --help
Por ejemplo, para averiguar la ruta al directorio de datos en Linux, puede ejecutar:
mysqld --verbose --help | grep ^datadir
Ejemplo de salida:
datadir /var/lib/mysql/
Puedes intentar esto-
mysql> select @@datadir;
PS- Funciona en todas las plataformas.
Use el comando de abajo desde la interfaz CLI
[root@localhost~]# mysqladmin variables -p<password> | grep datadir
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}''
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();