Deb*_*tor 37 mysql passwords ubuntu ubuntu-server ubuntu-16.04
我已经安装了ubuntu 16.04服务器.默认安装Mysql服务器.当我试图访问mysql时mysql -u root -p,我无法登录到mysql,因为我没有密码.有没有默认密码?
我也尝试过--skip-grant-tables,即使这样也行不通.即使尝试刚刚登录mysql -u root也是失败的.
Mao*_*dok 72
这就是您要寻找的:
sudo mysql --defaults-file=/etc/mysql/debian.cnf
基于Debian的Linux上的MySql通常使用带有凭据的配置文件.
Yas*_*sii 41
我mysql-server在Ubuntu 18.10上进行了全新安装,无法使用默认密码登录。然后只有我知道默认情况下,root用户使用进行了身份验证auth_socket。因此,如在答案中将插件更改为时mysql_native_password,我们可以使用mysql默认密码
$ sudo apt install mysql-server
$ sudo cat /etc/mysql/debian.cnf
Run Code Online (Sandbox Code Playgroud)
您可以在其中找到以下几行
user = debian-sys-maint
password = password_for_the_user
Run Code Online (Sandbox Code Playgroud)
然后:
$ mysql -u debian-sys-maint -p
Enter password:
Run Code Online (Sandbox Code Playgroud)
输入来自debian.cnf的密码
mysql> USE mysql
mysql> SELECT User, Host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| User | Host | plugin |
+------------------+-----------+-----------------------+
| root | localhost | auth_socket |
| mysql.session | localhost | mysql_native_password |
| mysql.sys | localhost | mysql_native_password |
| debian-sys-maint | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> COMMIT;
Run Code Online (Sandbox Code Playgroud)
要么:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Run Code Online (Sandbox Code Playgroud)
要么:
//对于MySQL 5.7+
mysql>UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';
Run Code Online (Sandbox Code Playgroud)
-更新-
有时您需要重新启动mysql服务器。
sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)
要么
sudo systemctl restart mysql
Run Code Online (Sandbox Code Playgroud)
Har*_*per 40
默认情况下,Mysql具有root用户的身份验证插件auth_socket,这要求系统用户名和db用户名相同.
具体来说,以root用户身份登录或sudo -i只输入mysql,您将以mysql身份登录,root然后您可以创建其他操作用户.
如果你在主机上没有root,我想你不应该被允许以root用户身份登录mysql?
Sha*_*yal 15
您可以通过使用--skip-grant-tables运行服务器并通过以root身份或使用sudo运行以下命令而无需密码登录来简单地重置root密码:
service mysql stop
mysqld_safe --skip-grant-tables &
mysql -u root
mysql> use mysql;
mysql> update user set authentication_string=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit
# service mysql stop
# service mysql start
$ mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
Ami*_*M75 14
请注意,在运行 MySQL 5.7(及更高版本)的 Ubuntu 系统中,root MySQL 用户默认设置为使用 auth_socket 插件而不是密码进行身份验证。您需要将其身份验证方法从 auth_socket 切换到 mysql_native_password
正如@BeNiza 所说,他们改变了安全模型。我做了以下步骤,它适用于 ubuntu 18.04 上的 mysql 5.7.27
sudo apt install mysql-server
MySQL数据库软件现已安装,但其配置尚未完成。
为了确保安装安全,MySQL 附带了一个脚本,该脚本会询问我们是否要修改一些不安全的默认值。通过键入以下内容启动脚本:
sudo mysql_secure_installation
您应该在每次提示时按下Y并按下该ENTER键。
如果您使用弱密码,这将导致问题
您可以通过在 mysql 命令之前添加 sudo 来简单地以 root 身份登录到您的 mysql,而无需提供任何密码。
sudo mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your-password';
如果您设置弱密码,您将看到以下错误:
ERROR 1819 (HY000):您的密码不符合当前的策略要求
mysql> FLUSH PRIVILEGES;
mysql> exit
注意:将您的 MySQL 根用户配置为使用密码进行身份验证后,您将无法再使用之前使用的 sudo mysql 命令访问 MySQL。相反,您必须运行以下命令:
mysql -u root -p
输入刚才设置的密码后,会看到MySQL提示。
小智 9
sudo mysql -u root -p,它可以让你输入任何密码,如果没有则使用sudo mysql。删除 root 用户。
DROP USER 'root'@'localhost';
Run Code Online (Sandbox Code Playgroud)
再次创建它。
CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';
Run Code Online (Sandbox Code Playgroud)
授予许可。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
重新启动 mysql 服务。
service mysql restart
Run Code Online (Sandbox Code Playgroud)
如果还是无法进入控制台,就得重新安装mysql了。
sudo apt-get remove --purge mysql-server mysql-client mysql-common -y
sudo apt-get autoremove -y
sudo apt-get autoclean
sudo rm -rf /etc/mysql
Run Code Online (Sandbox Code Playgroud)
删除服务器上的所有 MySQL 文件:
sudo find / -iname 'mysql*' -exec rm -rf {} \;
Run Code Online (Sandbox Code Playgroud)
安装mysql。
sudo apt update
sudo apt install mysql-server
Run Code Online (Sandbox Code Playgroud)
进行安装。
sudo mysql_secure_installation
Run Code Online (Sandbox Code Playgroud)
尽管这是一个古老的问题,但我们中仍有几个人仍在努力寻找答案。至少我做到了。请不要遵循所有冗长的解决方案。通过在mysql命令前添加sudo,您可以简单地以root用户身份登录mysql而无需提供任何密码(前提是这是全新安装,或者自安装以来尚未更改密码)。
$sudo mysql -uroot -p
mysql>
这是因为mysql在最新版本之一中更改了安全模型。
希望这可以帮助
从带有 MySql 8.0的Ubuntu 20.04 开始:该函数PASSWORD不再存在,因此正确的方法是:
登录到mysql sudo mysql -u root
更改密码:
Run Code Online (Sandbox Code Playgroud)USE mysql; UPDATE user set authentication_string=NULL where User='root'; FLUSH privileges; ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'My-N7w_And.5ecure-P@s5w0rd'; FLUSH privileges; QUIT
现在您应该能够使用mysql -u root -p(或使用用户名 root登录phpMyAdmin)和您选择的密码。
P,S:
您也可以使用用户登录debian-sys-maint,密码在文件中/etc/mysql/debian.cnf
唯一对我有用的选项是此链接中描述的选项。
总而言之(以防网站宕机),它说:
安装 MySQL:
sudo apt update
sudo apt install mysql-server
Run Code Online (Sandbox Code Playgroud)
在下一个提示中,您将被要求为 MySQL root 用户设置密码。执行此操作后,脚本还会要求您删除匿名用户、限制 root 用户访问本地计算机并删除测试数据库。您应该对所有问题回答“Y”(是)。
sudo mysql_secure_installation
Run Code Online (Sandbox Code Playgroud)
然后
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password';
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
之后,您可以退出:
exit
Run Code Online (Sandbox Code Playgroud)
现在您可以轻松登录(请记住输入您的very_strong_password):
mysql -u root -p
# type the password now.
Run Code Online (Sandbox Code Playgroud)
在尝试上述选项数小时后,这是唯一对我有用的选项。
在最新版本中,mySQL 使用auth_socket,因此要登录,您必须了解自动生成的用户凭据。或者如果您下载二进制版本,在安装过程中,您可以选择lagacy password.
在 linux debian 版本中安装 SQL
sudo apt install mysql-server
Run Code Online (Sandbox Code Playgroud)
知道密码
sudo cat /etc/mysql/debian.cnf
Run Code Online (Sandbox Code Playgroud)
现在登录
mysql -u debian-sys-maint -p
Run Code Online (Sandbox Code Playgroud)
使用密码来自 debian.cnf
如何查看可用的用户记录:
USE mysql
SELECT User, Host, plugin FROM mysql.user;
Run Code Online (Sandbox Code Playgroud)
现在您可以创建一个新用户。使用以下命令:
use mysql;
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'username'@'localhost';
flush privileges;
Run Code Online (Sandbox Code Playgroud)
列出特定 mysql 用户的授权
SHOW GRANTS FOR 'username'@'localhost';
Run Code Online (Sandbox Code Playgroud)
如何撤销特定 mysql 用户的所有授权
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'username'@'localhost';
Run Code Online (Sandbox Code Playgroud)
从用户帐户列表中删除/移除特定用户
DROP USER 'username'@'localhost';
Run Code Online (Sandbox Code Playgroud)
更多命令:
$ man 1 mysql
Run Code Online (Sandbox Code Playgroud)
请不要重置 root 的密码,而是创建一个新用户并授予权限。这是最佳做法。
从 Ubuntu 20.04 开始,使用默认的 MariaDB 10.3 包,这些是必要的步骤(重新混合来自该线程的早期答案):
sudo mysql -u rootUSE mysql;
UPDATE user set authentication_string=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
UPDATE user set plugin="mysql_native_password" where User='root';
FLUSH privileges;
QUIT
Run Code Online (Sandbox Code Playgroud)
sudo service mysql restart之后,您可以使用新密码连接到本地 mysql: mysql -u root -p
小智 5
sudo mysqld_safe --skip-grant-tables --skip-networking &mysql -u root
尝试这种方式,我已经解决了我的问题,这种方法。| 归档时间: |
|
| 查看次数: |
78233 次 |
| 最近记录: |