Kali使用MariaDB的认证问题

当在Kali Linux上遇到MariaDB认证问题,如安装后或忘记密码时,可以通过修改配置文件、重启服务及修改root用户权限来解决。步骤包括在配置文件中添加新行,无密码登录MySQL执行相关操作,以及根据需要调整root用户的认证方式以允许远程连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Kali使用MariaDB的认证问题

问题

安装完成或者忘记密码时会出现如下情况:
(这里先不考虑使用mysql_secure_installation初始化)
安装完成

解决方案

1、

sudo vim /etc/mysql/mariadb.cnf

2、在下图所示的位置添加一行skip-grant-tables
在这里插入图片描述
3、重启服务

sudo systemctl restart mysql.service

4、无验证进入mysql,并进行如下操作

use mysql;
update user set authentication_string=password("在此处替换为你的密码") where user="root";
flush privileges;

use
5、注释掉第一步添加的skip-grant-tables
注释

6、至此便可使用mysql -u root -p输入密码进入了


若还是不行,特别是第一次使用时

原因是MariaDB的root默认连接方式是unix_socket
可以使用select user,plugin from user;查看
unix_socket

1、将上面第五步注释的skip-grant-tables取消注释使其再次生效
2、重启服务

sudo systemctl restart mysql.service

3、无验证进入mysql,并进行如下操作

use mysql;
update user set authentication_string=password("在此替换为你的密码"),plugin='mysql_native_password' where user='root';
flush privileges;

use
4、注释掉第一步添加的skip-grant-tables
注释
5、至此便可使用mysql -u root -p输入密码进入了

在这里插入图片描述


远程连接

如果你想使用远程连接,将/etc/mysql/mariadb.conf.d/50-server.cnf中的bind-address修改为允许的地址,改为0.0.0.0或注释掉为不限制
bind
alter

### 如何重置 Kali Linux 登录密码和 Root 密密 #### 重置 Kali Linux 登录密码 可以通过进入单用户模式来完成此操作。以下是具体方法: 1. 启动 Kali Linux,在 GRUB 引导菜单中选择默认的启动选项,但不要直接按下回车键。 2. 使用键盘按键 `e` 编辑当前选中的引导条目配置文件[^2]。 3. 找到类似于 `ro initrd=/install/initrd.gz quiet` 的行,并将其修改为 `rw single initrd=/install/initrd.gz init=/bin/bash quiet`。 4. 修改完成后,按 `Ctrl + X` 或者 `F10` 键继续启动系统。 5. 进入单用户模式后,此时已获得根权限,可以直接运行以下命令更改用户的密码: ```bash passwd username ``` 将 `username` 替换为目标用户名并设置新的密码。 6. 完成之后重新启动计算机即可生效: ```bash reboot ``` #### 重置 MySQL Root 密码 如果忘记了 MySQL 数据库的 root 用户密码,则可以按照如下方式重置它: 1. 停止正在运行的 MySQL/MariaDB 服务: ```bash systemctl stop mariadb ``` 2. 跳过授权表启动 MySQL 服务器以便无需验证身份就能访问数据库: ```bash mysqld_safe --skip-grant-tables & ``` 3. 接下来通过常规客户端连接至本地实例: ```bash mysql -u root ``` 4. 更新 user 表内的认证数据以移除旧密码或者设定一个新的密码。例如: ```sql USE mysql; UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root'; FLUSH PRIVILEGES; EXIT; ``` 5. 关闭后台进程再恢复正常的服务状态: ```bash killall mysqld systemctl start mariadb ``` 以上步骤能够帮助解决忘记 Kali Linux 系统账户以及 MySQL 数据库管理员密码的情况[^1]。 ```python import subprocess def reset_mysql_root_password(new_password): try: # Stop the service. subprocess.run(['systemctl', 'stop', 'mariadb'], check=True) # Start MySQL with skip grant tables option. subprocess.Popen(['/usr/bin/mysqld_safe', '--skip-grant-tables']) import time; time.sleep(5) # Wait a bit. # Connect to MySQL and update password. commands = [ f'USE mysql;', f"UPDATE user SET authentication_string=PASSWORD('{new_password}') WHERE User='root';", 'FLUSH PRIVILEGES;', 'EXIT;' ] command_str = '\n'.join(commands).encode() result = subprocess.run( ['mysql', '-u', 'root'], input=command_str, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) if not result.returncode == 0: raise Exception(f'MySQL Password Reset Failed: {result.stderr.decode()}') # Restart normal operation of MariaDB/MySQL server. subprocess.run(['killall', 'mysqld']) subprocess.run(['systemctl', 'start', 'mariadb'], check=True) except Exception as e: print(e) reset_mysql_root_password("your_new_secure_password_here") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值