mysql print defaults_Can't determine basedir from my_print_defaults mysqld

我的环境是:centos7 + mysql5.7.26,今天在用 mysqldumpslow 命令查看慢查询日志时出现下面的错误

[root@localhost ~]# mysqldumpslow -t 1

Can't determine basedir from 'my_print_defaults mysqld' output: --server-id=1

--port=3306

--character_set_server=utf8

--collation-server=utf8_general_ci

--lower_case_table_names=1

...省略

翻译过来的意思是: 无法从 'my_print_defaults mysqld' 输出中确定 basedir(mysql的安装目录) ,原因是因为在安装 mysql 时没有设置 basedir 参数,也就是 mysql 的安装路径。

从网上找到的办法有的是需要执行 mysql_install_db 命令

mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &

还有的需要修改环境变量等等。

因为我的现在运行的 mysql 是用 rpm 包安装的,安装时安装目录是系统自动分配的,数据库目录,bin 目录等都是分散的,没有集中,上面的解决办法都不合适,最后参考了一下这篇文章的解决办法,MySQL Slow Queries Error: Can't determine basedir from 'my_pri,在之前的命令最后加上慢查询日志的文件名,这个问题就解决了。

[root@localhost ~]# mysqldumpslow -t 5 /var/lib/mysql/localhost-slow.log

Reading mysql slow query log from /var/lib/mysql/localhost-slow.log

Count: 2 Time=0.08s (0s) Lock=0.00s (0s) Rows=14.0 (28), root[root]@localhost

show databases

Count: 8 Time=0.01s (0s) Lock=0.00s (0s) Rows=0.0 (0), root[root]@localhost

Count: 2 Time=0.01s (0s) Lock=0.00s (0s) Rows=1.0 (2), root[root]@localhost

show variables like 'S'

分析一下这个问题产生的原因,如果 mysqldumpslow 命令最后不加慢查询日志的文件地址,mysql 会从默认配置中读取慢查询日志的文件地址,而确定慢查询日志地址的第一步肯定是确定 mysql 软件的安装路径,因为我的在安装时并没有配置,所以就产生了上面的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值