关于mariadb10.4.8二进制安装及源码编译后设置密码无效的一些发现

修改Mariadb数据库root使用密码登录 MariaDB数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 在新版的Mariadb安装过程中没有设置密码的过程了,而用mysql_secure_installation命令设置Root密码,然后用phpmyadmin登录发现提示 Access denied fo... 阅读详情

本文首发于我的个人网站: https://hewanyue.com/
本文作者: Hechao
本文链接: https://hewanyue.com/blog/4f0efae7.html

  之前安装了最新版的mariadb10.4.8后,无论是二进制编译安装还是源码编译安装,设定完密码之后启动mysqld服务,结果都不需要密码就可以登陆进去,无论怎么执行mysql_secure_installation数据库初始化脚本或者mysql_secure_installation安全加固脚本,进入mysql都无需密码,用命令直接设置密码也无效,都是直接一敲mysql就可以进入数据库了。my.cnf配置文件查看了无数遍,也没发现任何蛛丝马迹。今天终于在无意中查看mysql数据库权限时意外有所收获,写出来与大家分享,让大家少走弯路。
  当我进入mysql数据库,打开user表时,查看了下用户没有任何问题。
MariaDB [mysql]> select user,host,password from user;
±---------±-----------±----------------------------------------------------------+
| user   | host    |   password                    |
±---------±-----------±----------------------------------------------------------+
|  root  | localhost | *54D9A58CB44735F80AC5AD29961814D6D12B8746 |
|  root  | 127.0.0.1 | *54D9A58CB44735F80AC5AD29961814D6D12B8746 |
|  root  | ::1     | *54D9A58CB44735F80AC5AD29961814D6D12B8746 |
±---------±-----------±----------------------------------------------------------+
3 rows in set (0.001 sec)

userhostpassword
rootlocalhost*54D9A58CB44735F80AC5AD29961814D6D12B8746
root127.0.0.1*54D9A58CB44735F80AC5AD29961814D6D12B8746
root::1*54D9A58CB44735F80AC5AD29961814D6D12B8746

在这里插入图片描述
  可当我突发奇想打算看看他们这几个用户有什么权限上的区别时,就发现问题了:
MariaDB [mysql]> show grants for ‘root’@‘localhost’;
±--------------------------------------------------------------------------------------------------------------+
|  Grants for root@localhost                                   |
±--------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON . TO ‘root’@‘localhost’ IDENTIFIED VIA mysql_native_password USING ‘invalid’ OR unix_socket WITH GRANT OPTION                          |
| GRANT PROXY ON ‘’@’%’ TO ‘root’@‘localhost’ WITH GRANT OPTION         |
±--------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)
MariaDB [mysql]> show grants for ‘root’@‘127.0.0.1’;
ERROR 1141 (42000): There is no such grant defined for user ‘root’ on host ‘127.0.0.1’
MariaDB [mysql]> show grants for ‘root’@’::1’;
ERROR 1141 (42000): There is no such grant defined for user ‘root’ on host ‘::1’
MariaDB [mysql]>
在这里插入图片描述
  root用户竟然查不到权限,这就很奇怪了。在之前的mariadb10.2.27上尝试了下,都是正常的,如下图所示:
在这里插入图片描述
  于是我就尝试对那两个异常的用户账号授权。
在这里插入图片描述
  竟然也无法授权。这种情况跟我之前尝试过的直接用insert命令向user表中加的user条目情况有点相似。当时我用

insert user set Host='192.168.32.7',User='root',Password='54D9A58CB44735F80AC5AD29961814D6D12B8746',ssl_cipher='',x509_subject='',x509_issuer='',authentication_string='';

命令在user表中创建了一个用户条目’root’@‘192.168.32.7’。
在这里插入图片描述
  这个条目看起来和真正的用户一样,可等到授权时就发现没法授权了,且这个用户也没法远程在192.168.32.7主机登录,尝试insert了一个新的非root用户,也是同样的情况。说明create user 命令不单单只是在这个表上创建了新的用户条目,在其他关联的表上也有条目的增加。OK ,话题扯远了,继续说之前的无法加密的问题。
  既然是同样的情况,我想到会不会是说明我这个新装好的mariadb上的这两个用户没有创建成功,是不是像上面提到的两个异常用户只是在这表中“徒有其表”呢?
  那就尝试创建用户,并查看了下权限。
在这里插入图片描述  竟然创建用户成功了,而且权限也显示出来了(我记得我还没有授权呢啊!!!看来是root用户不用授权)。好像一切都恢复正常了。
  赶紧退出看下是不是真的恢复正常了,结果失望的发现还是一敲mysql就可以登陆进去了!!!在这里插入图片描述
  不过又尝试了下 用127.0.0.1登陆,发现竟然需要密码验证了,且用之前设置的密码才可以登录。我好像发现了什么~
  删除用户’root’@‘localhost’,不让删,需要至少一个有CREATE USER权限用户,看来之前的’root’@‘127.0.0.1’用户没有权限。
在这里插入图片描述
  那就先给’root’@‘127.0.0.1’用户授权grant all on *.* to 'root'@'127.0.0.1';,再删除用户’root’@‘localhost’,成功了,再重新创建’root’@‘localhost’用户并指定密码,再授权。OK,退出重新登陆一下。
在这里插入图片描述
  果然数据库加密成功了~!问题解决!
-------------------------------------------(以上封存,警醒自己的无知~)--------------------------------------------
  
  
  
  后记:
  原来是mariadb10.4.8版本默认是可以本地使用使用unix_socket登陆无需密码,才导致密码无效,在上面的图片里显示得清清楚楚。
MariaDB [mysql]> show grants for ‘root’@‘localhost’;
±--------------------------------------------------------------------------------------------------------------+
|  Grants for root@localhost                                   |
±--------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON . TO ‘root’@‘localhost’ IDENTIFIED VIA mysql_native_password USING ‘invalid’ OR unix_socket WITH GRANT OPTION                          |
| GRANT PROXY ON ‘’@’%’ TO ‘root’@‘localhost’ WITH GRANT OPTION         |
±--------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)
MariaDB [mysql]> show grants for ‘root’@‘127.0.0.1’;
ERROR 1141 (42000): There is no such grant defined for user ‘root’ on host ‘127.0.0.1’
MariaDB [mysql]> show grants for ‘root’@’::1’;
ERROR 1141 (42000): There is no such grant defined for user ‘root’ on host ‘::1’
MariaDB [mysql]>
在这里插入图片描述
  当然,也存在用户不存在,而user表中有条目的情况。所以想最终解决这个问题,实际上最直接的命令是:
  GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING '*54D9A58CB44735F80AC5AD29961814D6D12B8746' WITH GRANT OPTION;
  重新对root@localhost用户授权取消unix_sock登陆,并设置密码。
  至此,问题才真正解决。
                                      后记写于 2019.9.23。

Debian 10安装MariaDB的三大陷阱与七步实战指南 MariaDB作为MySQL的主流替代方案,其在Linux发行版中的部署行为存在显著差异。理解数据库服务初始化原理、systemd依赖管理机制及客户端符号链接(alternatives)工作机制,是解决服务不启动、root无法登录、本地连接失败等高频问题的技术基础。尤其在Debian系系统中,'最小化默认行为'设计导致mariadb-server安装后不自动启用、不初始化数据目录、不配置安全策略,与Ubuntu/CentOS形成鲜明对比。本文聚焦Debian 10(Buster)这一长期支持版本,深入解析m 阅读详情

相关推荐

运维-源码编译安装部署LNMP+Wordpress

在linux中,安装软件的三种方式,通过rpm\deb包安装,通过软件源码编译安装,直接使用编译完成的二进制文件。多数情况我们会直接使用yum/dnf/apt直接安装软件并安装依赖包,但是遇到部分软件对不同架构如arm架构时,官方源没有提供适用arm的源文件,或是内网隔离的部署环境,无法获取在线的软件源,此时我们就需要用源码编译去部署软件服务。 LNMP是最简单的网站业务架构,Linux+Nginx+Mariadb+PHP,提供PHP动态网站服务。十几年来依旧在小型业务站点中经久不息。本次我们将使用源码

ABCCloud的博客 685

解决mariadb设置初始密码不生效方法

默认是无密码的,换用了更安全的认证,但是很多链接需要密码,所以,,,需要设置密码 操作如下: root@ubuntu:mysql mariadb>use mysql; mariadb>update user set password=PASSWORD("123456") where User='root'; mariadb>update user set plugin="mysql_native_password"; mariadb>flush privileges; mar

通往未来的路 1040

Ubuntu 18.04 安装 MariaDB 10.1 实战指南:APT安装、安全加固与排错

MariaDB 是兼容 MySQL 协议的高性能开源数据库,其查询优化器、线程池和 Aria 存储引擎等特性显著提升事务处理能力与稳定性。在 Linux 系统中,APT 包管理是部署数据库服务最可靠的方式,它自动处理依赖、注册 systemd 服务并集成安全更新机制。Ubuntu 18.04 作为长期支持版本,官方源预置经过生产验证的 MariaDB 10.1.x,虽非最新,但具备极高的运行时可靠性。该版本广泛应用于政企信创、边缘设备及 CI/CD 构建节点等对稳定性要求严苛的场景。本文聚焦 Ubuntu

528

mariadb通过mysql_secure_installation设置初始密码无效

10.4,10.5版本的mariadb增加新特性,plugin为unix_socket的时候不需要用户名密码就可以登入。但是安装的时候plugin为mysql_native_password也能登入, 然后在官网查询得到修改方法如下: ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD("admin"); 设置之后就需要密码登陆了。 在之前通过mysql_secure_installatio.

Fullspeeder的专栏 2295

CentOS 8 LEMP 部署生存指南:MariaDB、Nginx模块化与PHP 7.4实战

LEMP 是 Linux、Nginx、MySQL 和 PHP 构成的经典 Web 技术栈,其核心原理在于进程协同与协议分层——Nginx 处理 HTTP 请求并反向代理至 PHP-FPM,后者通过 MySQLi 或 PDO 连接数据库。在 CentOS 8 中,该架构的技术价值面临重构:官方仓库弃用 MySQL 转而默认提供 MariaDB,Nginx 实施模块化流(stream)管理,PHP 版本受限于 AppStream 通道。这不仅影响安装可行性,更关系到 TLS 安全性、SELinux 上下文控制、

weixin_30721077的博客 400

Ubuntu 18.04离线安装MariaDB实战指南

MariaDB是MySQL的高性能开源替代方案,广泛用于嵌入式、工控及遗留系统数据库服务。其核心原理基于客户端-服务器架构与插件化存储引擎(如Aria、InnoDB),通过SQL接口提供ACID事务支持。在长期维护系统中,MariaDB的技术价值体现在轻量部署、高兼容性及对老旧环境的深度适配能力。典型应用场景包括边缘计算网关、RAGFlow等AI应用后端、工业数据采集终端等对稳定性与可追溯性要求严苛的生产环境。本文聚焦Ubuntu 18.04这一已退出标准支持的LTS版本,围绕apt源失效、mariadb-

快马扬鞭须努力! 541

mysql mariadb 10.4,编译mariadb 10.4.8的时候无法进行下去了。

cmake成功后,我切换到了安装目录 /usr/local/mysql 准备进行数据库初始化,可是一直报错[root@123 mysql]# ./scripts/mysql_install_db --datadir=/data/mysql --user=mysqlchown: cannot access ‘./lib/plugin/auth_pam_tool_dir’: No such file ...

weixin_33622153的博客 272

centos7 清理缓存

一、系统环境 系统版本 CentOS Linux release 7.3.1611 (Core) 内核版本 Linux xx-user 3.10.0-514.el7.x86_64 #1 SMP 背景 服务器分配的账号是普通用户,只能执行sudo命令 二、缓存查看及基本概念 查看内存使用情况 [user01@xx-user ~]$ free -h total used free shared buff/cache availabl

sunzq55的博客 4006

Linux安装MariaDB之后设置密码遇到的各种奇怪问题

如有错误欢迎指正 安装MariaDB之后默认用户名是root ,默认没有密码,直接在命令行输入mysql -u root就可以登录MySQL,然后输入 set password = xxxx; 设置密码,注意结尾的分号。但是会报错 上网搜一下解决方案 是因为你输入的密码是明文,它要求你输入十六进制数字。 解决方案:输入select password('密码'); 转换成对应的十六进制码 ,复制它给出的十六进制码代替明文密码...

m0_59834108的博客 2922

CATIA CAA 二次开发去除面内开孔

测试模型: 代码说明:以下代码在拓扑级去除Face的内部loop,更改后的Body通过oispBody参数输出。主要使用CATSmartBodyDuplicator拓扑操作实现 HRESULT CAAStarterCmd::RemoveHoleOnFace(CATBody_var &ispBody,CATBody_var &oispBody){ CATLISTP(CATCell)olistFace; ispBody->GetAllCells(olistFace,2); CATF

weixin_45445751的博客 2265

清洁机器人之屏幕(中,大LCD)方案--ITE 联阳986x系列 soc显控芯片介绍

清洁机器人之屏幕(中,大LCD)方案--ITE 联阳986x系列 soc显控芯片介绍

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 2666

Centos7.4安装mariadb10

Centos7.4安装mariadb10 一、下载mariadb源码包 官网地址:https://downloads.mariadb.org/ 安装MariaDB之前,首先要安装cmake,另外为了保证不缺依赖,使用yum或者rpm安装依赖:readline-devel,zlib-devel,openssl-devel,libaio-devel并且readline-devel依赖于ncurses-...

进阶的蜗牛 5871

【连接器专题】 EIA-364 系列标准的完整列表

EIA-364 系列标准在电子工业中具有重要的地位,为电子连接器和互连系统的测试和验证提供了统一的、可操作的流程和方法,有助于提高电子产品的质量和可靠性,促进了电子工业的发展

一点硬件 2660

MariaDB10.5安装 二 源码和二进制安装安装

MariaDB二进制安装 MariaDB源码安装

贺浦力特的博客 737

【WorkBuddy专栏68】HY3绕路部署vsDS4直击根因——一次真实踩坑揭露两个AI模型的推理差距

【WorkBuddy专栏68】HY3绕路部署vsDS4直击根因——一次真实踩坑揭露两个AI模型的推理差距

AI人人懂 564

026:vue+threeJS 设置地面铺砖的效果

BoxGeometry 是 Three.js 中用于创建立方体或长方体的几何体类。它允许你指定立方体的宽度、高度、深度以及这三个方向上的分段数,从而控制立方体的细分程度。width: 立方体的宽度(沿 x 轴方向)。height: 立方体的高度(沿 y 轴方向)。depth: 立方体的深度(沿 z 轴方向)。widthSegments: 可选参数,指定立方体在 x 轴方向上的分段数,默认值为 1。heightSegments: 可选参数,指定立方体在 y 轴方向上的分段数,默认值为 1。

大剑师兰特的GIS世界 647

Centos 7 源码编译安装 mysql

参考地址:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.htmlhttps://blog.csdn.net/weixin_52850476/article/details/122800696 安装方式 优点 缺点 yum rpm 简单、方便 (平时测试可以简单使用) 可定制性查对环境依赖很大,要满足依赖关系,要和rpm编译完成时的环境要一致 glibc MySQL 使用的 glibc 进行开发、glibc 库是一个

D的博客 2948

【YOLO26创新改进】TGRS 2026 | Transformer变体改进篇 | 使用CGTA曲率引导令牌注意力,改善结构与纹理的整体协调,适合遥感小目标检测、旋转目标检测、实例分割任务

本文在YOLO26目标检测模型中引入CGTA曲率引导令牌注意力模块,依据曲率显著性与特征可靠性,从高分辨率特征图中筛选少量关键令牌,再让全部位置与这些代表性特征进行全局交互,从而以较低计算和显存开销建立远距离目标、背景及跨尺度结构之间的联系;该模块能够重点强化车辆、舰船、飞机、建筑等目标的边缘、转角和弯曲轮廓,改善小目标、密集目标及旋转目标的特征完整性与定位稳定性,并通过可靠性门控抑制噪声和伪边缘,通过标准注意力与曲率注意力融合避免平坦区域被过度增强。

AI魔改博士-中大博士 47

MariaDB安装

可以选择下面三种二进制包,如果是源码安装需要编译,很慢 x:解压 c:压缩 S1:下载官网到目录/usr/local/src/ https://mariadb.org/ https://downloads.mariadb.org/mariadb/10.3.14/ #wget http://...

chenran5599的博客 183

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

MySQL与Mariadb的安装

MySQL(编译和二进制安装)与Mariadb(二进制安装)数据库安装

weixin_47669063的博客 463

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Linux软件包管理&源码包安装&rpm安装MySQL

学会这篇博客,可以好好休息一下了

2401_86155536的博客 1041

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

mysql8的源码安装

mysql源码安装

yudianwo的博客 523

mysql 8.0安装全过程(linux上二进制包安装,非root用户)

mysql 8.0.32的二进制安装。 附有socket问题解决办法

桑 4174

源码编译安装 Zabbix

在生产环境中,所使用的软件一般都是通过源码编译安装的;此文档中涉及到了mariadb、nginx、php、zabbix的源码安装,希望对您有帮助。 赞!赞!赞!

panbuhei 1309

Debian 9 安装 MariaDB 10.1 实战指南:稳定、安全与等保合规

MariaDB 是 MySQL 的高性能开源分支,兼容性强、内存占用低,广泛用于 Web 后端、IoT 数据聚合及轻量级 AI 应用(如 RAGFlow)。其核心原理基于改进的存储引擎(如 Aria、XtraDB)和增强的线程池机制,技术价值体现在更低资源消耗、原生安全加固支持及对老旧系统(如 Debian 9)的长期维护能力。典型应用场景包括 WSL 开发环境、边缘设备(树莓派)、等保2.0合规数据库部署。本文聚焦 Debian 9(Stretch)下 MariaDB 10.1 的精准安装、systemd

weixin_34082789的博客 599
上一篇: 二进制安装及源码编译安装mariadb数据库
下一篇: mysql多实例实现主从级联复制及读写分离
MicePro
博客等级 码龄8年 216粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MicePro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值