基于mysql8.0

创建配置文件的原因

如果需要在运行服务器时指定启动选项(run options),可以在 命令行 上指定它们或将它们放在配置文件中。对于每次服务器启动时都使用的选项,使用一个配置文件来指定MySQL配置是最方便的。在下列情况下尤其如此:

  • 安装目录的位置 或 数据目录的位置与默认位置不同(C:\Program Files\MySQL\MySQL Server 8.0 或 C:\Program Files\MySQL\MySQL Server 8.0\data)
  • 需要调整服务器设置,例如内存、缓存或InnoDB配置信息。

配置文件读取位置

当 MySQL服务器 在Windows上启动时,它会在几个位置查找选项文件,例如Windows目录,C:**,和MySQL安装目录。Windows目录通常命名为C:\ Windows**。您可以使用以下命令从WINDIR环境变量的值确定它的确切位置:

C:\> echo %WINDIR%

MySQL首先在my.ini文件中查找每个位置的选项,然后在my.cnf文件中查找。但是,为了避免混淆,最好只使用一个文件。如果你的电脑使用一个引导加载程序,其中C:不是引导驱动器,你唯一的选择是使用my.ini文件。无论您使用哪个选项文件,它都必须是纯文本文件。

当使用MySQL安装程序安装MySQL服务器时,它会在默认位置创建my.ini,并且执行MySQL安装程序的用户会被授予这个新的my.ini文件的完全权限。换句话说,要确保MySQL服务器用户拥有读取my.ini文件的权限。

选项文件读取顺序

  • 在上表中,%WINDIR%表示Windows目录的位置。这通常是C:\windows。使用以下命令从WINDIR环境变量的值来确定它的确切位置:
    C:\> echo %WINDIR%
  • %APPDATA%表示Windows应用程序数据目录的值。使用以下命令从APPDATA环境变量的值确定它的确切位置:
    C:\> echo %APPDATA%
  • BASEDIR表示MySQL的基本安装目录。
  • DATADIR表示MySQL数据目录。正如用于查找mysqld-auto.cnf,它的默认值是MySQL编译时内置的数据目录位置,但是可以通过在mysqld-auto.cnf被处理之前通过选项的--datadir来更改。

选项文件创建方法

选项文件大部分可以用任何文本编辑器(如记事本)创建和修改。例如,如果MySQL安装在E:\ MySQL中,数据目录在E:\mydata\data中,你可以创建一个包含[mysqld]部分的选项文件来指定basedirdatadir选项的值:

[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=E:/mydata/data

Microsoft Windows路径名在选项文件中使用(向前)斜杠而不是反斜杠指定。如果你使用反斜杠,把它们翻倍:

[mysqld]
# set basedir to your installation path
basedir=E:\\mysql
# set datadir to the location of your data directory
datadir=E:\\mydata\\data

创建选项文件一些特例:

选项文件大部分可以用任何文本编辑器(如记事本)创建和修改,不可以由任何文本编辑器创建的文件有:

  • 包含登录路径选项的.mylogin.cnf文件。这是一个由mysql_config_editor程序创建的加密文件。“登录路径”是一个选项组,它只允许某些选项:主机、用户、密码、端口和套接字。客户端程序使用--login-path选项指定要从.mylogin.cnf读取的登录路径。
  • 数据目录中的mysqld-auto.cnf文件。这个json格式的文件包含持久的系统变量设置。它是由服务器在执行SET PERSIST或SET PERSIST_ONLY语句时创建的。mysqld-auto.cnf的管理应该留给服务器,而不是手动执行。

小扩展:

ZIP文件不包括数据目录。要通过创建数据目录和填充MySQL系统数据库中的表来初始化MySQL安装,可以使用--initialize或--initialize-insecure来初始化MySQL。需要注意数据目录里有Mysql系统表数据,所以不可手动创建数据目录。参考官网初始化数据目录

更改数据目录须知:

如果要在另一个位置使用数据目录,则应该将数据目录的全部内容复制到新位置。例如,如果你想使用E:\mydata作为数据目录,你必须做两件事:

  • 将整个数据目录及其所有内容从默认位置(例如C:\Program Files\MySQL\MySQL Server 8.0\data)移动到E:\mydata。
  • 每次启动服务器时,使用--datadir选项指定新的数据目录位置。
posted on 2021-04-12 09:10  哑吧  阅读(785)  评论(0编辑  收藏  举报