当前位置:论坛首页 > Windows面板 > 求助

【已完成】mysql root 用户都被限制权限了吗

发表在 Windows面板2024-6-12 16:29  关闭 [复制链接] 13 1200

为了能快速了解并处理您的问题,请提供以下基础信息:
面板、插件版本:
系统版本:
问题描述:

我使用的是root 用户登录的,也被限制权限了。
MySQL [(none)]> GRANT SELECT ON performance_schema.user_variables_by_thread TO 'suyh_oa_tmp'@'%';
--------------
GRANT SELECT ON performance_schema.user_variables_by_thread TO 'suyh_oa_tmp'@'%'
--------------

ERROR 1142 (42000): GRANT command denied to user 'root'@'localhost' for table 'user_variables_by_thread'



另外 一个就是我用密码登录,会报错:
suyunhong@bi-dev:~$ mysql -u root -h localhost -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)



两个问题,麻烦帮忙看一下是什么情况呢,另外 我在宝塔面板上看到配置是如下的:
```txt
[client]
#password        = your_password
port                = 3306
socket                = /tmp/mysql.sock

[mysqld]
port                = 3306
socket                = /tmp/mysql.sock
datadir = /data1/www/server/data
default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
skip-external-locking
key_buffer_size = 512M
max_allowed_packet = 100G
table_open_cache = 2048
sort_buffer_size = 8M
net_buffer_length = 4K
read_buffer_size = 8M
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 128M
thread_cache_size = 256
query_cache_size = 256M
tmp_table_size = 256M
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

explicit_defaults_for_timestamp = true
#skip-name-resolve
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535

#skip-log-bin
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
expire_logs_days = 10
slow_query_log=1
slow-query-log-file=/data1/www/server/data/mysql-slow.log
long_query_time=3
#log_queries_not_using_indexes=on
early-plugin-load = ""


innodb_data_home_dir = /data1/www/server/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /data1/www/server/data
innodb_buffer_pool_size = 2048M
innodb_log_file_size = 1024M
innodb_log_buffer_size = 256M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 12
innodb_write_io_threads = 12

[mysqldump]
quick
max_allowed_packet = 500M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 8M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout


```
相关截图(日志、错误):

Snipaste_2024-06-12_16-44-26.png
使用道具 举报 只看该作者 回复
发表于 2024-6-12 16:54:28 | 显示全部楼层
您好,问题1看到您使用的不是root用户  $是其他用户的标志

问题2重装一下phpmyadmin
使用道具 举报 回复 支持 反对
发表于 2024-6-17 16:14:43 | 显示全部楼层
运维技术阿闯 发表于 2024-6-12 16:54
您好,问题1看到您使用的不是root用户  $是其他用户的标志

问题2重装一下phpmyadmin ...

我使用的是root 用户登录的,也被限制权限了。
MySQL [(none)]> GRANT SELECT ON performance_schema.user_variables_by_thread TO 'suyh_oa_tmp'@'%';
--------------
GRANT SELECT ON performance_schema.user_variables_by_thread TO 'suyh_oa_tmp'@'%'
--------------

ERROR 1142 (42000): GRANT command denied to user 'root'@'localhost' for table 'user_variables_by_thread'

不对呀,你看报错就是 'root'@'localhost' ,不就是root 吗,你看的哪里不是root 用户。另外 就是我这边肯定就是使用的root 用户,没错的呀。
第二个问题倒 也无所谓,不用就好了。但我感觉就是因为装 了它才导致了这个报错,之前都是好好的。  
使用道具 举报 回复 支持 反对
发表于 2024-6-17 17:20:15 | 显示全部楼层
suyh 发表于 2024-6-17 16:14
我使用的是root 用户登录的,也被限制权限了。
MySQL [(none)]> GRANT SELECT ON performance_schema.use ...

您好,您看一下 command denied to user 'root'@'localhost' for table 'user_variables_by_thread'
表示这通常意味着 root 用户没有足够的权限来执行你尝试的 GRANT 命令,或者该命令本身不合法,因为 user_variables_by_thread 是一个系统表,不是常规的用户可以授予或撤销权限的表

使用道具 举报 回复 支持 反对
发表于 2024-6-17 19:09:06 | 显示全部楼层
本帖最后由 suyh 于 2024-6-17 19:10 编辑
运维技术阿闯 发表于 2024-6-17 17:20
您好,您看一下 command denied to user 'root'@'localhost' for table 'user_variables_by_thread'
表示 ...

是的,我知道这个是系统表,现在我要用flywaydb 来管理我的SQL。所以需要对这张表有查询权限。以前是可以的,我感觉是安装那个 php 管理工具之后就不行了。连root 用户都没权限就离谱了。我们迁移过数据存储目录:/www/server/data   ==>   /data1/www/server/data  是在宝塔界面上操作的。
使用道具 举报 回复 支持 反对
发表于 2024-6-18 10:10:02 | 显示全部楼层
suyh 发表于 2024-6-17 19:09
是的,我知道这个是系统表,现在我要用flywaydb 来管理我的SQL。所以需要对这张表有查询权限。以前是可以 ...

您好,您看一下卸载您出现问题前安装的操作
使用道具 举报 回复 支持 反对
发表于 2024-6-19 18:15:25 | 显示全部楼层
运维技术阿闯 发表于 2024-6-18 10:10
您好,您看一下卸载您出现问题前安装的操作

那个问题解决了,是我没有输入密码。
原来是需要用密码登录才能给权限,我之前是直接登录,没有使用密码。



但是我又有一个问题,我现在用root 登录是使用 的 -h 127.0.0.1 的。
一旦我使用 -h localhost 输入密码就会报错,反正我指定 localhost 或者不指定 -h 都进不去。
suyunhong@bi-dev:~$ mysql -u root -h localhost -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
suyunhong@bi-dev:~$ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
suyunhong@bi-dev:~$ mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
suyunhong@bi-dev:~$


上面用了三个命令都没进去:
mysql -u root -h ocalhost -p
mysql -u root
mysql -u root -p

为什么会报这个socket 啥的呀。


在mysql 的配置界面,有个配置修改,我搜索 sock 只找到4 个,大概如下:

[client]
#password        = your_password
port                = 3306
socket                = /tmp/mysql.sock

[mysqld]
port                = 3306
socket                = /tmp/mysql.sock


使用道具 举报 回复 支持 反对
发表于 2024-6-20 09:31:20 | 显示全部楼层
suyh 发表于 2024-6-19 18:15
那个问题解决了,是我没有输入密码。
原来是需要用密码登录才能给权限,我之前是直接登录,没有使用密码。 ...

您好,检查套接字文件路径是否正确
[color=rgba(0, 0, 0, 0.82)]您可以在 MySQL 配置文件中查找套接字文件的位置
使用道具 举报 回复 支持 反对
发表于 2024-6-20 14:16:26 | 显示全部楼层
运维技术阿闯 发表于 2024-6-20 09:31
您好,检查套接字文件路径是否正确
您可以在 MySQL 配置文件中查找套接字文件的位置 ...

不会看,我把配置修改这个内容搞到一个文件中,你帮我看下,好吗?

mysql.zip

870 Bytes, 下载次数: 1033

使用道具 举报 回复 支持 反对
发表于 2024-6-20 15:15:00 | 显示全部楼层
suyh 发表于 2024-6-20 14:16
不会看,我把配置修改这个内容搞到一个文件中,你帮我看下,好吗?

您好,配置问题暂时看不了,只能是给您了思路,您看一下
使用道具 举报 回复 支持 反对
发表于 2024-6-21 09:57:35 | 显示全部楼层
运维技术阿闯 发表于 2024-6-20 15:15
您好,配置问题暂时看不了,只能是给您了思路,您看一下

从配置中我只看到有两个地方跟sock 相关的配置项
[client]
#password        = your_password
port                = 3306
socket                = /tmp/mysql.sock

[mysqld]
port                = 3306
socket                = /tmp/mysql.sock

但是报错提示的却是  
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)  
这两个路径匹配不上,而且我也没找到这个报错的路径在哪个配置文件中。

我突然想到一个问题,那就是这个配置文件在系统的哪个位置。
分两种情况,一种就是宝塔默认安装会放在哪个位置,另一种就是mysql 系统如果不通过宝塔安装会放在哪个位置,路径。
使用道具 举报 回复 支持 反对
发表于 2024-6-21 14:02:52 | 显示全部楼层
suyh 发表于 2024-6-21 09:57
从配置中我只看到有两个地方跟sock 相关的配置项
[client]
#password        = your_password

您好,MySQL不通过面板安装话应该是在/etc/下,面板安装的会在/www/server/下
您要打开您的配置文件中找到socket 指令,查看 socket 指令设置的路径是否正确
使用道具 举报 回复 支持 反对
发表于 2024-6-21 15:37:29 | 显示全部楼层
运维技术阿闯 发表于 2024-6-21 14:02
您好,MySQL不通过面板安装话应该是在/etc/下,面板安装的会在/www/server/下
您要打开您的配置文件中找到 ...

我找到一个配置文件:/etc/mysql/mariadb.conf.d/50-client.cnf  
在这里面找到了如下一段配置
[client]
# Default is Latin1, if you need UTF-8 set this (also in server section)
default-character-set = utf8mb4

# socket location
socket = /var/run/mysqld/mysqld.sock

我尝试修改这个文件,错误提示就跟随变更了。所以应该是这里的配置生效了。

我现在修改这个路径与宝塔面板上看到的路径一致,可以正常登录 了。
辛苦了
使用道具 举报 回复 支持 反对
发表于 2024-6-21 17:45:16 | 显示全部楼层
suyh 发表于 2024-6-21 15:37
我找到一个配置文件:/etc/mysql/mariadb.conf.d/50-client.cnf  
在这里面找到了如下一段配置
[client]

问题解决了就好,后续有问题可以在开新帖,这边就闭贴了,祝您生活愉快
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表