MySQL配置文件my.cnf查找

2019-07-18 15:32:44

常常因为想看一下MySQL里面的配置my.cnf,却苦于找不到这个文件的存放位置。下面是常用的三个查找方法,快准狠!

ps

利用ps命令。mysql启动时往往携带很多启动参数,看看是否有启动指定的配置文件,命令如下:
ps aux|grep mysql

命令
ps aux|grep mysql|grep 'my.cnf'

输出
fdipzone         25174   0.0  0.0  3087244    600   ??  S     4:12下午   0:01.14 /usr/local/Cellar/mysql/5.6.24/bin/mysqld --defaults-file=/usr/local/Cellar/mysql/5.6.24/my.cnf --basedir=/usr/local/Cellar/mysql/5.6.24 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.24/lib/plugin --bind-address=127.0.0.1 --log-error=/usr/local/var/mysql/TerrydeMacBook-Air.local.err --pid-file=/usr/local/var/mysql/TerrydeMacBook-Air.local.pid
fdipzone         25064   0.0  0.0  2452824      4   ??  S     4:12下午   0:00.03 /bin/sh /usr/local/opt/mysql/bin/mysqld_safe --defaults-file=/usr/local/Cellar/mysql/5.6.24/my.cnf --bind-address=127.0.0.1 --datadir=/usr/local/var/mysql

有输出,说明找到了,没输出,说明mysql启动时未携带该配置参数,再或者mysql还没启动。

mysql

这里是直接利用mysql的help命令来查找,命令如下:
mysql --help|grep my.cnf

命令
mysql --help|grep 'my.cnf'

输出
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf

/etc/my.cnf, /etc/mysql/my.cnf, /usr/local/etc/my.cnf, ~/.my.cnf 这些就是mysql默认会搜寻my.cnf的目录,顺序排前的优先。
按照这个路径一个一个去找一下。

locate

这里是利用上了locate命令,这个命令比较实用,它是将文件信息在本地进行了一个缓存,查找速度快,命令如下:
locate my.cnf

命令
locate my.cnf

输出
/etc/my.cnf
/etc/my.cnf.d

over

这里的over就是over的意思,不是命令😆。如果以上都没有找到的话,则自己创建一个把,文件存放路径可以放在mysql --help|grep my.cnf指定的路径下即可。

06 | 全局锁和表锁:给表加个字段怎么有那么多阻碍?

本文的总结源于林晓斌在极客时间里面的课程,为避免产生商业问题,我只是用于个人学习总结。 原文地址:https://time.geekbang.org/column/article/69862 小结 根据加锁范围:MySQL里面的锁可以分为:全局锁、表级锁、行级锁 全局锁 对整个数据库实例加锁 MySQL提供全局读锁的方法:flush tables with read lock(FTWRL) 这个命令可以使整个库处于只读状态,使用该命令之后,数据更新语句、数据定义语句和更新类事务的提交语句等操作都会被阻塞。 使用场景:全库逻辑备份 风险: 如果在主库备份,在备份期间不能更新,业务停摆 如果在从库备份,备份期间不能执行主库同步的binlog,导致主从延迟 官方自带的逻辑备份工具Mysqldump,当Mysqldump使用参数--single-transaction的时候,会启动一个书屋,确保拿到一致性视图。而由于MVCC的支持,这个过程中数据是可以正常更新的。 一致性读是好,但是前提是引擎要支持这个隔离级别。 如果要全库只读,为什么不使用set global