mysql启动流程

配置流程实例展示
阅读本文前的知识准备: mysql程序启动流程.7z
SET MYSQL_HOST="127.0.0.1"SET MYSQL_PWD="123456"mysql --defaults-group-suffix=_test --defaults-extra-file="D:\mysql\config.ini" --login-path=mypath --host=localhost --user=game这是用来启动mysql客户端的命令, 但它看起来好像太复杂了.脑壳疼.别着急,让我们大家帮你分析分析.我看到你用set命令设置了跟mysql相关的环境变量, 我帮你把它记录下来我注意到你的命令里包含有影响配置文件读取的选项参数,我们可以根据它们整理出配置文件读取的顺序表mysql配置项分析记录1.全局变量设置的配置项:MYSQL_HOST: mysql连接的主机MYSQL_PWD: mysql连接使用的密码mysql配置项分析记录1.全局变量设置的配置项:MYSQL_HOST: mysql连接的主机MYSQL_PWD: mysql连接使用的密码2.影响配置文件读取的选项参数(1)--defaults-extra-file: 额外指定的配置文件(2)--defaults-group-suffix: 增加读取的组后缀(3)--login-path: 指定读取.mylogin.cnf配置组我仔细地看了下电脑的目录及文件,情况是这样的这样的话,配置文件读取的顺序该是这样的:1.%windir%\my.ini2.basedir\my.ini3.D:\mysql\config.ini(--defaults-extra-file指定)4.%APPDATA%\MySQL\.mylogin.cnf(客户端程序必读)让我来好好帮你看看各个配置文件的内容, 整理出所有有效的配置项吧首先,让我们来看看:%windir%\my.ini[client]password = 123456port = 3306socket = /tmp/mysql.sock[mysql]no-auto-rehash[mysqld]default_authentication_plugin=mysql_native_passwordport = 3306basedir=E:/mysql/mysql5.7.26datadir=E:/mysql/mysql5.7.26/datamysql客户端默认读取[client]组和[mysql]组,有效选项整理如下表:接着看basedir\my.ini:默认读取[client], 但别忘记了命令行里的--defaults-group-suffix=_test,因此[client_test]也被读取[client]password = 123456port = 3307[client_test]user=root!include=D:\\mysql\\my.ini根据文件覆盖规则,后读取的文件覆盖先读取的,最终结果为:(被覆盖的值用红色并加上删除线表示)注意到basedir\my.ini最后是一个!include语句导入一个指定的配置文件, 根据它的内容更新上面的配置项表格:[client]password = abcdeport = 3308下一个文件是:D:\mysql\config.ini[client]password = xyzport = 3000最后是:%APPDATA%\MySQL\.mylogin.cnf如果引入的配置文件有[mysqld]组,这里是不会读取的.这是因为引入文件也是按照规则读取对应组的[mypath]password=7654321[client]password=123456port=3306socket=/tmp/mysql.sock最终的结果应该是这样的:别忘了, 命令行参数中也包含有设置项(除开那些影响文件读取的选项参数), 我们应该把他们也考虑进来. 开头的环境变量设置的选项host和password都被覆盖掉了.这里的[mypath]先被读取, 但是位于[client]前面, 注定会被后面的password覆盖,我们直接取123456--login-path=mypath命令行指定读取的组真正的最终结果如下,你可以拿去启动mysql客户端了谢谢老铁们!导入的配置文件
posted @ 2020-05-01 19:39  peterzhangsnail  阅读(327)  评论(0编辑  收藏  举报