Как найти каталог данных mysql из командной строки в windows
в linux я мог бы найти каталог установки mysql с командой which mysql
. Но я не мог найти их в windows. Я пытался!--1--> и это привело к множеству путей вместе с путем к mysql bin.
Я хотел найти каталог данных MySQL из командной строки в Windows для использования в пакетной программе. Я также хотел бы найти каталог данных mysql из командной строки linux. Возможно ли это? или как мы можем это сделать?
в моем случае каталог данных mysql находится на папка установки, т. е. ..MYSQLmysql server 5data
он может быть установлен на любом диске, однако. Я хочу вернуть его из командной строки.
8 ответов
вы можете выполнить следующий запрос из командной строки:
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name LIKE "%dir"'
вывод (в 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 |
+---------------------------+----------------------------+
выход (на 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/ |
+---------------------------+-----------------------------------------------------------+
или если вы хотите использовать только данные dir:
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir"'
эти команды работают и на Windows,но вам нужно инвертировать одинарные и двойные кавычки.
кстати, при выполнении which mysql
в Linux, как вы сказали, вы не получите установка база данных и отключает табличный вывод и заголовок столбца.
вывод на Linux:
/var/lib/mysql
Если вы хотите найти datadir в linux или windows, вы можете сделать следующую команду
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir"'
Если вам интересно найти datadir, вы можете использовать команду grep & awk
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir"' | grep 'datadir' | awk '{print }'
вывод на Windows:
вы можете просто использовать эту команду,это очень легко!
1. нет пароля MySQL:
mysql ?
2. имейте пароль MySQL:
mysql -uroot -ppassword 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();
вы можете увидеть полный список опций сервера MySQL, выполнив
mysqld --verbose --help
например, чтобы узнать путь к каталог данных в Linux вы можете запустить:
mysqld --verbose --help | grep ^datadir
пример:
datadir /var/lib/mysql/
проверить, если находится в "C:\ProgramData\MySQL\MySQL Server 5.7\Data"
. Вот где он находится на моем компьютере. Кому-то это может пригодиться.
используйте команду bellow из интерфейса CLI
[root@localhost~]# mysqladmin variables -p<password> | grep datadir