[Warning] root@localhost is created with an empty password ! Please consider switching off the解决办法

2023-05-16

    如题所示,当我们在ubuntu1804中,通过默认的源安装数据库mysql之后,直接就可以通过mysql -uroot就可以登录了,因为他默认生成的密码是空的。

    如下所示,ubuntu1804系统自带的默认mysql源就是5.7.30版本:

    

    如果要安装5.7版本的mysql,无需考虑其他, 直接apt install mysql-server就完了:

    

    安装过程,会将所需的依赖全部安装上,包括libaio1,无需再手动安装。安装完成即启动成功,生成的密码是空的。

    

    进入/var/log/mysql,查看error.log文件,发现password关键字这里的提示信息就是本文的标题部分:

     

    我们在命令行,可以直接输入mysql -uroot即可进入数据库中,并且不用更改root的密码就可以进行一些列的操作。

     

    查询mysql数据库中的user表,查看关键信息:

            我们发现root用户的plugin是使用的auth_socket,就是说,只要系统切换到root用户下,可以直接登录。如果我们在其他用户比如test,那么我们无法登录,更加无法远程登录。

    如何解决这个空密码的问题呢, 我们需要更改plugin为mysql_native_password,顺便更改authentication_string这个字段,也就是密码字段。更改了之后,不要忘记flush privileges,就是将权限写入数据库,而不是留在会话中。

mysql> update user set plugin='mysql_native_password',authentication_string=password('root') where user='root';     
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

mysql> select user,plugin,authentication_string from user;
+------------------+-----------------------+-------------------------------------------+
| user             | plugin                | authentication_string                     |
+------------------+-----------------------+-------------------------------------------+
| root             | mysql_native_password | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| mysql.session    | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys        | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| debian-sys-maint | mysql_native_password | *EABE427EFF3FACDFC5EDB2A3892AB57D77645CF6 |
+------------------+-----------------------+-------------------------------------------+
4 rows in set (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> exit
Bye

     最后,我们再次使用空密码登录,发现就失效了,只能使用密码登录的方式了:

root@huali:/var/log/mysql# mysql -uroot
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
root@huali:/var/log/mysql# mysql -uroot -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
root@huali:/var/log/mysql# mysql -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.30-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

mysql> 

     温馨提示:如果需要远程登录,还记得修改user表中的user=root的host为%,另外mysql配置文件(/etc/mysql/mysql.cnf.d/mysqld.cnf)中bind-adress也需要修改为0.0.0.0,如下所示:

    

    另外,解决本文警告的问题,也就是关于空密码的问题,还有一种办法,就是停止mysql服务,service mysql stop,然后删除默认生成的数据库文件:rm -rf /var/lib/mysql/*, 最后执行mysqld --initialize --user=root,即可生成一个随机的密码。我们使用随机密码登录数据库,然后无法做任何操作,只能先修改密码,这时候通过alter user 'root'@'localhost' identified by 'root'即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[Warning] root@localhost is created with an empty password ! Please consider switching off the解决办法 的相关文章

  • C# 如何知道给定路径是否代表根驱动器?

    我如何知道给定目录是否是根驱动器 除了检查其路径是否等于 A B C 等 检查 DirectoryInfo Parent 是否为空 DirectoryInfo d new DirectoryInfo if d Parent null IsR
  • 无法使用 WAMP 访问 localhost 或 phpMyAdmin

    我正在运行 Apache v2 2 21 PHP v5 38 和 MySQL v5 5 16 WAMP 图标为绿色 正如帖子标题所述 我无法从 WAMP 系统托盘图标菜单访问 localhost 或 phpMyAdmin 也无法通过键入ht
  • Angular 控制台仅从 main.js:1 和 polyfills.js:1 记录日志

    我正在构建一个新的角度应用程序 在我执行 console log 的任何地方 它都来自 main js 1 或 polyfills js 1 而不是来自正确的组件 我尝试将 main js 和 polyfills js 添加到开发工具设置中
  • 获取Android中的文件权限(root)

    在尝试了一些获得 root 权限的设备后 我被这些文件困住了 假设我们在根文件夹中的某个位置有一个文件 我想从我的应用程序中读取 写入该文件 到目前为止我发现的唯一方法是更改 文件权限 例如 String cmd su c chmod 77
  • 使用构建标签进行Android根检测?

    以下方法是我们以编程方式检测 Android 设备是否已 root 的方法之一 public boolean checkRootMethod1 String buildTags android os Build TAGS if buildT
  • 如何将 WAMP 本地主机从 Firefox 移至 chrome?

    我最近在计算机上安装了 WAMP 服务器 当我打开 localhost 时 它会自动在 Firefox 中打开 我希望它在 Chrome 中打开 以便我可以使用 Chrome 开发人员工具 如何让我的本地主机在 chrome 而不是 fir
  • 在 Ubuntu WSL2 上连接到本地主机的问题

    我在本地为 django 项目设置了 Apache2 服务器 并且运行得非常好 问题是 休息一天后我回到它并尝试连接到服务器 但不知何故我无法连接到它 即使在检查 apache 服务是否正在运行并重新加载配置以确保确定之后也是如此 我无法从
  • Python使用sudo启动时找不到模块

    我有一个使用 Google Assistant 库的脚本 并且必须从那里导入一些模块 我发现这只适用于 Python 虚拟环境 这真的很奇怪 在同一个文件夹中 我有一个使用 GPIO 引脚并且必须使用 root 的脚本 它们相互交互 因此当
  • 使用 MAMP 在 Mac 上出现“db: SQLSTATE[HY000] [2002] 连接被拒绝”错误

    我正在尝试运行此 PHP 数据库的 CLI 版本搜索和替换脚本 https github com interconnectit Search Replace DB 但我认为这是一个与 Mac OS X 和 MAMP 相关的更常见的 MySQ
  • Android SU 权限:如何使用它们?

    这里有一种情况 我正在使用 Java 开发一个 Android 应用程序 我对这些东西都很熟悉 但现在这是我第一次需要使用 SU 权限 我只需要替换 实际上是重命名 system app 目录中的文件 但看起来我无法以通常的方式执行它 Fi
  • nginx 已卸载,localhost:8080 仍显示 nginx 欢迎页面

    我使用从brew卸载了nginxbrew uninstall nginx 但是当我去http localhost 8080 我仍然收到 欢迎使用 Nginx 消息 我已经做了什么 重新启动我的电脑 3次 使用删除了额外的 nginx 文件夹
  • Android 应用程序自动且静默更新?

    我开发了一个应用程序 想要更新自身 并想要以下功能 设备已植根 1 自动检查可以每次启动时更新 我可以做到 2 将apk文件下载到本地 我可以做 3 使用自定义对话框更新 或者静默更新 我不知道 编辑 我的应用程序在带遥控器的电视上运行 默
  • 无法打开输入文件:localhost:8080

    在 Windows 上 要从命令提示符运行 PHP Web 服务器 我键入 php s localhost 80800 t public 我收到此错误 无法打开输入文件 localhost 8080 And yet cmd php test
  • 无需root设备即可卸载系统应用程序

    有没有办法在不root设备的情况下将apk推送到系统 应用程序文件夹 我找到了几种在 root 设备上执行此操作的方法 但我正在寻找一种无需先 root 设备即可执行此操作的方法 如果有任何区别 我想在三星 S4 上执行此操作并使用 twr
  • 编写跨环境传输的 URL 的安全方法

    我目前正在本地计算机上开发一些软件 为了这个问题 我们来调用一下这个软件StackOverflow 我有以下页面 C sites StackOverflow index php C sites StackOverflow content p
  • 在python中求Legendre多项式的根

    我正在编写一个程序 通过勒让德 高斯求积求解积分 n 阶求积算法需要在某一时刻找到 n 阶勒让德多项式 Pn x 的根 并将它们分配给数组 Absc 表示 横坐标 Pn 是一个 n 阶多项式 在区间 1 1 上有 n 个独立的实根 我希望能
  • 如何使用 Jackson 重命名 JSON 序列化中的根密钥

    我正在使用 Jackson 对对象列表进行 JSON 序列化 这是我得到的 ArrayList id 1 name test name 但我想要这个 rootname id 1 name test name ie showing the s
  • PHP:如何访问根目录之外的下载文件夹? [复制]

    这个问题在这里已经有答案了 我如何创建一个 PHP 脚本 页面 允许会员 买家下载存储在根目录之外的下载文件夹中的压缩文件 产品 我正在使用 Apache 服务器 请帮忙 谢谢 保罗 G 您可能会在 soac 提供的链接中找到一些更好的信息
  • Android 屏幕共享编程(Root)

    在 Android gt 5 中 是否可以从 root adb shell 进行屏幕共享 而无需通过 miracast 或 chromecast 进行用户交互 我正在寻找启用 禁用此功能的命令https support google com
  • Python LocationValueError:未指定主机

    自从上次更新我的 Windows 以来 我的 python 无法连接到互联网 当我 pip 某些东西时 错误就像 if host startswith AttributeError NoneType object has no attrib

随机推荐