mysql root用户登录后无法查看数据库全部表
可能是把root@localhost用户删掉了。
首先停掉mysql服务,在/etc/my.cnf中添加 skip-grant-tables,同时可以添加skip-networking选项来禁用网络功能,防止这时其他人通过网络连接到数据库
1 2 3 4 5 | [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 skip- grant -tables #添加这一行 |
启动服务,进入数据库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | MariaDB [(none)]> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A #查看有没有root@localhost用户,没有就用 update 添加 MariaDB [mysql]> select host, user , password from user ; + -----------------------+------+-------------------------------------------+ | host | user | password | + -----------------------+------+-------------------------------------------+ | % | LEE | *E6CC90B878B948C35E92B003C792C46C58C4AF40 | | % | root | *E6CC90B878B948C35E92B003C792C46C58C4AF40 | | localhost | root | | | localhost.localdomain | | | | 127.0.0.1 | root | | + -----------------------+------+-------------------------------------------+ 5 rows in set (0.00 sec) #给root@localhost上密码 MariaDB [mysql]> UPDATE user SET password = PASSWORD ( '1' ) WHERE user = 'root' AND host= 'localhost' ; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 #把相应的权限附上 MariaDB [mysql]> update user set -> `Select_priv` = 'Y' , -> `Insert_priv` = 'Y' , -> `Update_priv` = 'Y' , -> `Delete_priv` = 'Y' , -> `Create_priv` = 'Y' , -> `Drop_priv` = 'Y' , -> `Reload_priv` = 'Y' , -> `Shutdown_priv` = 'Y' , -> `Process_priv` = 'Y' , -> `File_priv` = 'Y' , -> `Grant_priv` = 'Y' , -> `References_priv` = 'Y' , -> `Index_priv` = 'Y' , -> `Alter_priv` = 'Y' , -> `Show_db_priv` = 'Y' , -> `Super_priv` = 'Y' , -> `Create_tmp_table_priv` = 'Y' , -> `Lock_tables_priv` = 'Y' , -> `Execute_priv` = 'Y' , -> `Repl_slave_priv` = 'Y' , -> `Repl_client_priv` = 'Y' , -> `Create_view_priv` = 'Y' , -> `Show_view_priv` = 'Y' , -> `Create_routine_priv` = 'Y' , -> `Alter_routine_priv` = 'Y' , -> `Create_user_priv` = 'Y' , -> `Event_priv` = 'Y' , -> `Trigger_priv` = 'Y' , -> `Create_tablespace_priv` = 'Y' -> where user = 'root' and host= 'localhost' ; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 #更新数据库 MariaDB [mysql]> FLUSH PRIVILEGES ; Query OK, 0 rows affected (0.00 sec) |
在之后退出数据库,把刚才改的配置文件还原回来,重启数据库就好了。
初学linux,每学到一点东西就写一点,如有不对的地方,恳请包涵!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能