fedora上mariadb的默认密码是什么?


72

我刚刚通过yum安装了mysql,而操作系统fedora为我安装了mariadb。我知道mariadb是mysql的新分支,但我不明白为什么它不要求我设置密码。我尝试使用123456,以此类推,但失败了。我的fedora是新的,这是第一次安装mysql / mariadb。我该怎么办?


3
您是否尝试将其留空?
弗洛里斯

4
我试过了,但是没有用。
Tony

Answers:


65

https://mariadb.com/kb/en/mysql_secure_installation/

为了登录MariaDB进行安全保护,我们需要root用户的当前密码。如果您刚刚安装了MariaDB,但尚未设置root密码,那么该密码将为空,因此只需在此处按Enter。

密码为空

我想这就是你的答案。


6
感谢您的回答,我已经尝试过了,但是似乎不起作用。
Tony

6
它显示:[lucups @ localhost nginx] $ mysql -uroot -p输入密码:ERROR 2002(HY000):无法通过套接字'/var/lib/mysql/mysql.sock'(2)连接到本地MySQL服务器
Tony

我发现文件夹“ / var / lib / mysql”不存在。
Tony

1
哇。是的,您必须将该字段留空,然后按重置。然后,将向您显示此掩码以更改用户并通过。这是Synology搞砸的。感谢弗洛里斯的回答!
atripes

121

我有同样的问题。的确密码是空的,但即使如此,也会显示错误消息。解决方案只是使用“ sudo”,所以

$ sudo mysql

将打开mysql工具

为了保护数据库,应该再次使用sudo。

$ sudo mysql_secure_installation

14
安装命令中缺少的sudo帮助我解决了这个问题!+1
英里,

别忘了先启动mysql!
mateuszb

哎呀,要做的一件荒谬的简单事情。我尝试了多个sudo,但不仅仅是一个简单的sudo mysql。谢谢!
Reisclef '18年

48

mariadb默认使用UNIX_SOCKET插件来验证用户root。https://mariadb.com/kb/zh-CN/mariadb/unix_socket-authentication-plugin/

“因为他已经向操作系统标识了自己,所以他不需要为数据库再次这样做”

因此,您需要以unix上的root用户身份登录才能以mysql / mariadb中的root用户身份登录:

sudo mysql

如果要从普通的unix用户使用root登录,则可以禁用root身份验证插件。

预先可以使用mysql_secure_installation设置root密码(默认密码为空),然后让每个用户使用以下命令进行root身份验证:

shell$ sudo mysql -u root
[mysql] use mysql;
[mysql] update user set plugin='' where User='root';
[mysql] flush privileges;
[mysql] \q

1
这是我最喜欢的让每个用户都以mariadb用户身份进行身份验证的方式
sebisnow

1
请注意,这可能会破坏您的OS发行版使用的脚本,请参阅将 身份验证重置为旧样式(需要密码)
return42 '18

最终,一个可行的解决方案。mysql_secure_installation无法运行,因为它挂在“输入当前密码”阶段。仅按ENTER键根本不起作用。
库伯·萨帕列夫

18

默认密码为空。更准确地说,您甚至不需要密码即可在本地主机上以root用户身份登录。您只需要成为root。但是,如果您需要首次设置密码(如果允许远程访问root用户),则需要使用:

sudo mysql_secure_installation

输入空密码,然后按照说明进行操作。

您遇到的问题是,当您尝试以root用户身份从本地计算机登录时,需要成为root用户。

在Linux上:仅当用户询问根目录时,mariadb才会在套接字(localhost)上作为根接受连接。这意味着即使您尝试

mysql -u root -p

并具有正确的密码,您将被拒绝访问。一样

mysql_secure_installation

Mariadb将始终拒绝密码,因为当前用户不是root用户。因此,您需要使用sudo(或作为您计算机上的root用户)来调用它们。所以在本地,您只想使用:

sudo mysql

sudo mysql_secure_installation

从mysql迁移到mariadb时,我花了我很多时间才能解决。


13

Lucups,Floris是对的,但是您评论说这并不能解决您的问题。我遇到了相同的症状,其中mysql(mariadb)将不接受应接受的空白密码,并且'/ var / lib / mysql'不存在。

我发现此Moonpoint.com页面是按需显示的。也许像我一样,您尝试启动mysqld服务而不是mariadb服务。尝试:

systemctl start mariadb.service
systemctl status mysqld service

依次为:

mysql_secure_installation

1
我遇到这个问题已经很长时间了:)我已经放弃了fedora Linux发行版,现在正在使用Ubuntu Server。我通过apt-get安装了mysql,它允许我在安装过程中设置密码。无论如何,非常感谢您的回答!我认为这对其他人会有帮助。
托尼

9

在安装mysql mariadb 10.3之后出现了相同的问题。密码不是NULL,因此仅按ENTER对我不起作用。所以最后不得不更改密码。我从这里按照指示进行。简而言之 停止服务器

sudo systemctl stop mariadb.service

通过启动数据库服务器并跳过联网和权限表,通过后门获得对服务器的访问权限。

sudo mysqld_safe --skip-grant-tables --skip-networking &

以root身份登录

sudo mysql -u root

然后更改服务器密码

use mysql;
update user set password=PASSWORD("new_password_here") where User='root';

请注意,在MySQL 5.7之后,删除了mysql.user表字段中的password字段,现在该字段名称为'authentication_string'。因此,请根据mysql版本使用适当的表名。最终保存更改并重新启动服务器

flush privileges;
sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service

这样一来,如果你希望能够从其他地方比登陆后只有Unix套接字,你也必须做的UPDATE user SET plugin='' WHERE user = 'root';-默认的“插件”值“unix_socket”,它通过Unix套接字使根只能登录。
hanshenrik

只是关于上面的注释的注释...您永远不能以root用户身份(除了unix套接字以外的任何位置)登录:即在盒子本身上。DBA 101:没有远程根访问权限!
CrazyMerlin'5

6

如果您的数据库安装正确并且输入了错误的密码,则抛出的错误将是:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

以下错误表明您尚未完全启动/安装数据库。您的命令无法找到数据库实例并与之对话。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")

好的做法是在全新安装后更改密码

$ sudo service mysql stop
$ mysqld_safe --skip-grant-tables &
$ sudo service mysql start
$ sudo mysql -u root

MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user set password=PASSWORD("snafu8") where User='root';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> exit;

$ sudo service mysql restart

要么

mysqladmin -u root password 'enter password here'

3

我相信我从这里找到了正确的答案。

GitHub Wnmp

因此,总的说来:

用户: root
密码: 密码

那是通过Wnmp版本安装的版本10.0.15-MariaDB 。Windows 7 x86上的2.1.5.0



1

默认情况下,MariaDB安装具有匿名用户,从而任何人都可以登录MariaDB,而无需为其创建用户帐户。这仅用于测试,并使安装过程更流畅。在移入生产环境之前,应先删除它们。


2
错误2002(HY000):无法通过套接字'/var/lib/mysql/mysql.sock'连接到本地MySQL服务器
Tony,



1

我遇到了同样的问题,所有解决方案均无效。然后,我在stackexchange dba中碰到了一个导致该链接的答案。所以这就是我所做的:

  1. 跑了 sudo mysqld_safe --skip-grant-tables --skip-networking &
  2. 跑进sudo mysql -urootmysql控制台
  3. 运行ALTER USER root@localhost identified via unix_socket;flush privileges;连续允许无密码的登录

如果要设置密码,则需要再执行一步,即正在运行,ALTER USER root@localhost IDENTIFIED VIA mysql_native_password;然后SET PASSWORD = PASSWORD('YourPasswordHere');连续。

更新

最近面对这个问题,这是我如何使用最新版本解决此问题,但在此之前有一些背景知识。以root身份运行时,Mariadb不需要密码。因此,首先将其作为根运行。然后,一旦进入Mariadb控制台,请在此处更改密码。如果您满意以管理员身份运行它,则可以继续这样做,但是我发现这很麻烦,尤其是因为我不能将其与DB Admin Tools一起使用。TL; DR这是我在Mac上的操作方式(对于* nix系统应该是类似的)

sudo mariadb-secure-installation

然后按照屏幕上的说明进行操作!

希望这会对某人有所帮助,并为以后的问题提供参考

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.