我刚刚通过yum安装了mysql,操作系统Fedora为我安装了mariadb。 我知道mariadb是mysql的一个新分支,但我不明白为什么它不要求我设置密码。 我试过123456等等,但我失败了。 我的fedora是新的,这是第一次安装mysql / mariadb。 我该怎么做呢?
答案 0 :(得分:72)
我遇到了同样的问题。密码是空的,但即便如此,也会显示错误消息。解决方案就是使用" sudo" 所以
$ sudo mysql
将打开mysql工具
为保护数据库,您应该再次使用sudo。
$ sudo mysql_secure_installation
答案 1 :(得分:49)
来自https://mariadb.com/kb/en/mysql_secure_installation/:
为了登录MariaDB以保护它,我们需要当前的 root用户的密码。如果你刚刚安装了MariaDB,那么你 还没有设置root密码,密码将为空,所以你 应该按回车。
密码为空
我认为这是你的答案。
答案 2 :(得分:34)
mariadb默认使用UNIX_SOCKET插件来验证用户root。 https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/
“因为他已经确定了自己的操作系统,他确实如此 不需要再次为数据库“
所以你需要以unix上的root用户身份登录才能以root身份登录mysql / mariadb:
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
答案 3 :(得分:12)
Lucups,Floris是对的,但你评论说这并没有解决你的问题。我遇到了相同的症状,其中mysql(mariadb)不接受它应该接受的空白密码,并且'/ var / lib / mysql'不存在。
我发现此Moonpoint.com页面已经过时了。也许像我一样,你试图启动mysqld服务而不是mariadb服务。尝试:
systemctl start mariadb.service
systemctl status mysqld service
遵循惯例:
mysql_secure_installation
答案 4 :(得分:11)
默认密码为空。 更准确地说,您甚至不需要密码才能以root身份登录本地主机。你只需要根源。 但是如果你需要第一次设置密码(如果你允许远程访问root),你需要使用:
sudo mysql_secure_installation
输入空密码,然后按照说明操作。
您遇到的问题是,当您尝试从本地计算机以root身份登录时,您需要是root用户。
在Linux上:只有当用户询问它时,mariadb才会在套接字(localhost)上以root用户身份接受连接。这意味着即使你尝试
mysql -u root -p
如果密码正确,您将被拒绝访问。同样适用于
mysql_secure_installation
Mariadb将始终拒绝密码,因为当前用户不是root用户。因此,您需要使用sudo(或作为计算机上的root用户)调用它们 所以在本地你只想使用:
sudo mysql
和
sudo mysql_secure_installation
当我从mysql迁移到mariadb时,我想让我想出来。
答案 5 :(得分:5)
如果您的数据库安装正确并输入了错误的密码,则抛出的错误将是:
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'
答案 6 :(得分:5)
在安装mysql mariadb 10.3之后出现了相同的问题。密码不是NULL,因此仅按ENTER对我不起作用。所以最后不得不更改密码。我遵循了here的指示。 简而言之 停止服务器
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
答案 7 :(得分:3)
我相信我从这里找到了正确的答案。
所以一般来说它说:
用户: root
密码: 密码
适用于版本10.0.15-MariaDB,通过 Wnmp ver安装。 Windows 7 x86上的2.1.5.0
答案 8 :(得分:1)
默认情况下,MariaDB安装具有匿名用户,允许任何人登录MariaDB而无需为其创建用户帐户。这仅用于测试,并使安装更顺畅。你应该在进入之前删除它们 生产环境。
答案 9 :(得分:1)
对我来说,password = admin
工作了。我使用pacman
,Arch(Manjaro KDE)安装了它。
NB:已安装MariaDB,作为Amarok的依赖项。
答案 10 :(得分:1)
Mariadb的默认密码为空。
$ mysql -u root -p
Enter Password: <--- press enter
答案 11 :(得分:0)
我遇到了同样的问题,所有解决方案均无效。然后,我撞到an answer in stackexchange dba,导致this link。所以这就是我所做的:
sudo mysqld_safe --skip-grant-tables --skip-networking &
sudo mysql -uroot
进入mysql控制台ALTER USER root@localhost identified via unix_socket;
和flush privileges;
以允许无密码登录如果要设置密码,则需要再执行一步,即连续运行ALTER USER root@localhost IDENTIFIED VIA mysql_native_password;
和SET PASSWORD = PASSWORD('YourPasswordHere');
。
希望这将对某人有所帮助,并为我将来的问题提供参考
答案 12 :(得分:-1)
只需将您当前的登录用户切换为root,然后无需密码即可登录 mysql -uroot