今天发现公司某测试环境nacos有点异常,java服务无法拉取最新的配置,经过一系列排查,最终定位到是mysql的问题,奇奇怪怪,如下 备份的时候总是提示有问题
[cloudwise@10-101-1-58 ~]$ /data/app/mysql/bin/mysqldump -u Rootmaster -pRootmaster@777 --set-gtid-purged=OFF --databases mysql > mysql.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqldump: Couldn't execute 'SHOW VARIABLES LIKE 'ndbinfo\_version'': Native table 'performance_schema'.'session_variables' has the wrong structure (1682)
翻了网上很多文章 都没解决
于是决定 通过force_recovery的方式 先将数据备份出来 然后删除数据目录 重新初始化mysql 产生一个新的performance_schema库 再导入备份数据
删除数据目录的时候 提示我权限不足
[cloudwise@10-101-1-58 appData]$ rm -rf mysql
rm: cannot remove ‘mysql.old/’: Permission denied
我仔细看了下 如下 目录属主和属组也对
[cloudwise@10-101-1-58 appData]$ ll
drwxr-xr-x 13 cloudwise cloudwise 4096 Jul 15 17:23 mysql
想了想 是不是有人给见了一些特殊权限啊 一看 没有
[cloudwise@10-101-1-58 appData]$ lsattr mysql
---------------- mysql/ibdata1
---------------- mysql/ib_logfile1
---------------- mysql/ib_logfile0
---------------- mysql/binlog.000001
---------------- mysql/auto.cnf
... ...
---------------- mysql/binlog.000005
---------------- mysql/binlog.000006
---------------- mysql/binlog.000007
---------------- mysql/nacos
---------------- mysql/binlog.000008
---------------- mysql/binlog.000009
---------------- mysql/binlog.000010
---------------- mysql/performance_schema
---------------- mysql/binlog.000011
---------------- mysql/binlog.index
---------------- mysql/ib_buffer_pool
估计是上层目录权限不对 一看 还真是
[cloudwise@10-101-1-58 appData]$ ll /data/
drwxr-xr-x 13 root root 187 Jul 8 18:34 appData
把数据目录的父目录属主属组更改为当前mysql运行用户 重启mysql 好了