Как найти каталог данных MySQL из командной строки в Windows

В Linux я могу найти каталог установки MySQL с помощью команды которых MySQL. Но я не мог найти в Windows. Я попробовал Эхо %путь% и это вызвало много путей вместе с путь к MySQL Бен.

Я хотел найти каталог данных MySQL из командной строки в Windows для использования в пакетной программе. Я также хотел бы найти каталог данных MySQL из командной строки в Linux. Возможно ли это? или как мы можем это сделать?

В моем случае каталог данных MySQL на папке установки, т. е. `..в mysql\mysql сервер 5\данных однако она может быть установлена на любой диск. Я хочу, чтобы он вернулся из командной строки.

Решение

Можно выполнить следующий запрос в командной строке:

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 Сьерра):

+---------------------------+-----------------------------------------------------------+
| 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/         |
+---------------------------+-----------------------------------------------------------+

Или если вы хотите только использовать данные реж:

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

Эти команды тоже работают на Windows, но нужно инвертировать одинарные и двойные кавычки.

Кстати, при выполнении которого с MySQL в Linux, как вы сказали, Вы'll не получить установка каталог в Linux. Вы'll не только получить двоичный путь, который /usr/Бен на Linux, но установка MySQL с использованием нескольких папок для хранения файлов.


Если вам нужно значение переменной datadir как выходной, и только, что без заголовков столбцов и т. д., Но вы не'т у среду гну (на awk|grep в|ООО ...), то используйте следующую командную строку:

mysql -s -N -uUSER -p information_schema -e 'SELECT Variable_Value FROM GLOBAL_VARIABLES WHERE Variable_Name = "datadir"'

Команда будет выбирать значение только из MySQL'с внутренней базой данных базы данных information_schema и отключает табличные данные и заголовки столбцов.

Выход на Linux:

/var/lib/mysql
Комментарии (10)

Вы можете попробовать это-

mysql> select @@datadir;

ПС - это работает на любой платформе.

Комментарии (6)

если вы хотите найти datadir на Linux или Windows, вы можете сделать следующую команду

в MySQL -uUSER -Р -Е 'показать переменные где Имя_переменной = "по-datadir не на"'

если вы заинтересованы в том, чтобы найти datadir не вы можете использовать команду grep & команду awk

mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir"' | grep 'datadir' | awk '{print $2}'
Комментарии (0)

Выход на Windows: вы можете просто использовать эту команду,это очень легко!

1. пароль базы данных MySQL:

mysql ?

2. пароль базы данных MySQL:

mysql -uroot -ppassword mysql ?

Комментарии (0)

Вы можете увидеть полный список опций сервер MySQL работает

mysqld --verbose --help

Например, чтобы найти путь к каталог данных на Linux, вы можете запустить:

mysqld --verbose --help | grep ^datadir

Пример вывода:

datadir                                     /var/lib/mysql/
Комментарии (0)

Используйте команду ниже в интерфейсе командной строки

[root@localhost~]# mysqladmin variables -p | grep datadir
Комментарии (0)

Проверить, если каталог данные в то"C:\ProgramData\MySQL\MySQL сервер 5.7\данные на". Это где это на моем компьютере. Кто-то может найти это полезным.

Комментарии (0)
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)