在 Ubuntu 上与 APT 一起安装的 MySQL 的 BASEDIR 在哪里?

Where is the BASEDIR for MySQL installed with APT on Ubuntu?

根据 MySQL 文档,2.10.1 Initializing the Data Directory:

  1. Change location into the top-level directory of your MySQL installation, represented here by BASEDIR:

    shell> cd BASEDIR

    BASEDIR is likely to be something like /usr/local/mysql or /usr/local. The following steps assume that you have changed location to this directory.

    You will find several files and subdirectories in the BASEDIR directory. The most important for installation purposes is the bin subdirectory, which contains the server as well as client and utility programs.

我检查了 /usr/local/mysql and /usr/local,但它们都不包含任何与 MySQL 相关的内容。 which mysql returns /usr/bin/mysql,但我认为 /usr/bin 不会是 MySQL 的基本目录。

文档说我需要在 BASEDIR 下创建一个名为 mysql-files 的目录,所以我想知道在哪里可以找到它。

首先,您可以使用dpkg -L name查找Apt包安装的文件,例如:

dpkg -L mysql-server-5.6

如您所见,没有明确的 BASEDIR 所有 MySQL 服务器文件所在的位置。这些文件分布在多个位置。因此,您链接的文档中提到的这个参考点不适用于 Ubuntu.

这样的系统

您可以在系统某处创建目录,然后将secure_file_priv设置为该位置的绝对路径。 我不知道 Ubuntu 中推荐的位置是什么, 但可能在 /var/lib/mysql 以下的某个地方应该不错。

基本目录是一个系统变量,所以如果你想知道它是什么,你应该可以简单地询问 运行 服务器:

mysql> SELECT @@BASEDIR;

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_basedir

以下将适用于 Ubuntu,任何 linux 发行版,OS X 和几乎任何支持 mysql 的 OS:

$ mysqladmin -u root variables | grep basedir

对于某些MySQL安装方法,数据目录初始化是自动的 对于 Ubuntu 上的 APT - /usr/bin/ 中的自动初始化是 basedir


/usr/bin/

mysql
mysqladmin
mysqldump
mysqlpump
mysqlshow
mysqlslap
mysqlcheck
mysqlbinlog
mysqld_safe
mysqlimport
mysqld_multi
mysqldumpslow
mysql_upgrade
mysql_config_editor
mysql_ssl_rsa_setup
mysql_tzinfo_to_sql
mysql_secure_installation

/usr/sbin/

mysqld

/usr/lib/mysql/

/plugin/

/private/

/var/lib/mysql/

it is datadir

/var/log/mysql/

error.log

/etc/mysql/mysql.conf.d/

mysqld.cnf

/var/lib/mysql-文件/


/var/lib/mysql-钥匙圈/


/etc/systemd/system/multi-user.target.wants/

mysql.service

/home/name_account_pc

.mysql_history