Ale*_*ico 87
我有同样的问题.密码是空的,但即便如此,也会显示错误消息.解决方案就是使用"sudo"
$ sudo mysql
Run Code Online (Sandbox Code Playgroud)
将打开mysql工具
为了保护数据库,您应该再次使用sudo.
$ sudo mysql_secure_installation
Run Code Online (Sandbox Code Playgroud)
Flo*_*ris 54
来自https://mariadb.com/kb/en/mysql_secure_installation/:
为了登录MariaDB以保护它,我们需要root用户的当前密码.如果您刚刚安装了MariaDB,并且尚未设置root密码,则密码将为空,因此您只需按Enter键即可.
密码为空
我想那是你的答案.
red*_*hka 41
mariadb默认使用UNIX_SOCKET插件来验证用户root.https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/
"因为他已经确定了自己的操作系统,他不需要为数据库再做一次"
所以你需要以unix上的root用户身份登录才能以root身份登录mysql/mariadb:
sudo mysql
Run Code Online (Sandbox Code Playgroud)
如果您想从普通的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
Run Code Online (Sandbox Code Playgroud)
Sté*_*gne 13
默认密码为空.更准确地说,您甚至不需要在本地主机上以root用户身份登录密码.你只需要根源.但是如果你需要第一次设置密码(如果你允许远程访问root),你需要使用:
sudo mysql_secure_installation
Run Code Online (Sandbox Code Playgroud)
输入空密码,然后按照说明操作.
您遇到的问题是,当您尝试从本地计算机以root身份登录时,您需要是root用户.
在Linux上:只有在用户询问它的情况下,mariadb才会在套接字(localhost)上以root用户身份接受连接.这意味着即使你尝试
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
并拥有正确的密码,您将被拒绝访问.同样如此
mysql_secure_installation
Run Code Online (Sandbox Code Playgroud)
Mariadb将始终拒绝密码,因为当前用户不是root用户.所以你需要用sudo(或作为你机器上的root用户)调用它们所以你只想在本地使用:
sudo mysql
Run Code Online (Sandbox Code Playgroud)
和
sudo mysql_secure_installation
Run Code Online (Sandbox Code Playgroud)
当我从mysql迁移到mariadb时,我想让我想出来.
Mic*_*man 12
Lucups,Floris是对的,但你评论说这并没有解决你的问题.我遇到了相同的症状,其中mysql(mariadb)不接受它应该接受的空白密码,并且'/ var/lib/mysql'不存在.
我发现这个Moonpoint.com页面是关键的.也许像我一样,你试图启动mysqld服务而不是mariadb服务.尝试:
systemctl start mariadb.service
systemctl status mysqld service
Run Code Online (Sandbox Code Playgroud)
通常遵循:
mysql_secure_installation
Run Code Online (Sandbox Code Playgroud)
在安装mysql mariadb 10.3之后出现了相同的问题。密码不为NULL,因此仅按ENTER键对我无效。所以最后不得不更改密码。我从这里按照指示进行。简而言之 停止服务器
sudo systemctl stop mariadb.service
Run Code Online (Sandbox Code Playgroud)
通过启动数据库服务器并跳过联网和权限表来通过后门获得对服务器的访问。
sudo mysqld_safe --skip-grant-tables --skip-networking &
Run Code Online (Sandbox Code Playgroud)
以root身份登录
sudo mysql -u root
Run Code Online (Sandbox Code Playgroud)
然后更改服务器密码
use mysql;
update user set password=PASSWORD("new_password_here") where User='root';
Run Code Online (Sandbox Code Playgroud)
请注意,在MySQL 5.7之后,删除了mysql.user表字段中的password字段,现在该字段名称为'authentication_string'。因此,请根据mysql版本使用适当的表名。最终保存更改并重新启动服务器
flush privileges;
sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
Run Code Online (Sandbox Code Playgroud)
小智 6
Mariadb 的默认密码为空。
$ mysql -u root -p
Enter Password: <--- press enter
Run Code Online (Sandbox Code Playgroud)
如果您的数据库安装正确并输入了错误的密码,则抛出的错误将是:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
以下错误表示您尚未完全启动/安装DB.您的命令无法找到您的数据库实例并与之通信.
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
Run Code Online (Sandbox Code Playgroud)
要么
mysqladmin -u root password 'enter password here'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
176749 次 |
最近记录: |