suyh 发表于 2024-6-12 16:29:34

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

为了能快速了解并处理您的问题,请提供以下基础信息:面板、插件版本:
系统版本:
问题描述:
我使用的是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

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


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


quick
max_allowed_packet = 500M


no-auto-rehash


key_buffer_size = 512M
sort_buffer_size = 8M
read_buffer = 2M
write_buffer = 2M


interactive-timeout


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

运维技术阿闯 发表于 2024-6-12 16:54:28

您好,问题1看到您使用的不是root用户$是其他用户的标志

问题2重装一下phpmyadmin

suyh 发表于 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 用户,没错的呀。
第二个问题倒 也无所谓,不用就好了。但我感觉就是因为装 了它才导致了这个报错,之前都是好好的。:lol

运维技术阿闯 发表于 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 是一个系统表,不是常规的用户可以授予或撤销权限的表

suyh 发表于 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。所以需要对这张表有查询权限。以前是可以 ...

您好,您看一下卸载您出现问题前安装的操作

suyh 发表于 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 个,大概如下:


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


port                = 3306
socket                = /tmp/mysql.sock


运维技术阿闯 发表于 2024-6-20 09:31:20

suyh 发表于 2024-6-19 18:15
那个问题解决了,是我没有输入密码。
原来是需要用密码登录才能给权限,我之前是直接登录,没有使用密码。 ...
您好,检查套接字文件路径是否正确
您可以在 MySQL 配置文件中查找套接字文件的位置

suyh 发表于 2024-6-20 14:16:26

运维技术阿闯 发表于 2024-6-20 09:31
您好,检查套接字文件路径是否正确
您可以在 MySQL 配置文件中查找套接字文件的位置 ...

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

运维技术阿闯 发表于 2024-6-20 15:15:00

suyh 发表于 2024-6-20 14:16
不会看,我把配置修改这个内容搞到一个文件中,你帮我看下,好吗?

您好,配置问题暂时看不了,只能是给您了思路,您看一下

suyh 发表于 2024-6-21 09:57:35

运维技术阿闯 发表于 2024-6-20 15:15
您好,配置问题暂时看不了,只能是给您了思路,您看一下

从配置中我只看到有两个地方跟sock 相关的配置项

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


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 相关的配置项

#password      = your_password

您好,MySQL不通过面板安装话应该是在/etc/下,面板安装的会在/www/server/下
您要打开您的配置文件中找到socket 指令,查看 socket 指令设置的路径是否正确

suyh 发表于 2024-6-21 15:37:29

运维技术阿闯 发表于 2024-6-21 14:02
您好,MySQL不通过面板安装话应该是在/etc/下,面板安装的会在/www/server/下
您要打开您的配置文件中找到 ...

我找到一个配置文件:/etc/mysql/mariadb.conf.d/50-client.cnf
在这里面找到了如下一段配置

# 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

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

我现在修改这个路径与宝塔面板上看到的路径一致,可以正常登录 了。
辛苦了
:lol

运维技术阿闯 发表于 2024-6-21 17:45:16

suyh 发表于 2024-6-21 15:37
我找到一个配置文件:/etc/mysql/mariadb.conf.d/50-client.cnf
在这里面找到了如下一段配置



问题解决了就好,后续有问题可以在开新帖,这边就闭贴了,祝您生活愉快
页: [1]
查看完整版本: 【已完成】mysql root 用户都被限制权限了吗