面向云技术架构 - 痴者工良

  • 首页
  • 工良写的电子书
    • kubernetes 教程
    • 从 C# 入门 Kafka
    • 多线程和异步
    • 动态编程-反射、特性、AOP
    • 表达式树
  • 本站文章导航
  • 隐私政策
愿有人陪你颠沛流离
遇到能让你付出的事物或者人,都是一种运气。
能遇到,就该珍惜。或许你们最终没能在一起,但你会切实地感受到力量。
正因为这样,那段相遇才变得有价值,才没有辜负这世间的每一段相遇。
  1. 首页
  2. 笔记和吹水
  3. 代码片段
  4. 正文

Mysql 没有 root 用户的问题

2022年1月13日 1438点热度 2人点赞 1条评论
内容纲要

安装了 Mysql/MariaDB ,但是 root 死活进不去,只能用 mysql 这个账号进去。

[root@192-168-0-241 ~]# mysql -u mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.3.32-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show tables;
ERROR 1046 (3D000): No database selected
MariaDB [(none)]> SHOW DATABASES
    -> ;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
+--------------------+

MariaDB [(none)]>  select user ();
+-----------------+
| user ()         |
+-----------------+
| mysql@localhost |
+-----------------+
1 row in set (0.000 sec)

MariaDB [(none)]>  show grants;
+--------------------------------------+
| Grants for @localhost                |
+--------------------------------------+
| GRANT USAGE ON *.* TO `<code>@</code>localhost` |
+--------------------------------------+

可以看到,根本没有 mysql 这些系统表,说明安装根本不正常。

如果是 mysql,想办法找到 my.ini 文件,如果是 MariaDB ,在 /etc/my.cnf.d/server.cnf 文件里面。找到 [mysqld],改成如下:

[mysqld]
skip-grant-tables
skip-networking

然后重启数据库。

执行命令进入数据库:

mysql

输入命令创建表以及添加用户:

UPDATE mysql.user SET password=password('123456')
WHERE user='root' AND host='localhost';
exit

然后再找到 配置文件的 [mysqld] ,删除添加的那两行 skip*。
重启数据库。

使用 mysql -u root -p 登录数据库,成功!
修改或设置新的密码:

set password for root @localhost = password('123456');

PS:
允许远程:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION ;
flush privileges;
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: mysql root 没有 用户 问题
最后更新:2022年1月17日

痴者工良

高级程序员劝退师

点赞
< 上一篇
下一篇 >

文章评论

  • 痴者工良

    如果是 TIDB - MYSQL,则使用 SET PASSWORD FOR 'root'@'%' = 'xxx';,然后刷新:flush privileges;。
    同样,TIDB-MYSQL 也可以开启远程:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION ;
    flush privileges;

    2022年1月18日
    回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    COPYRIGHT © 2022 whuanle.cn. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    粤ICP备18051778号

    粤公网安备 44030902003257号