ubuntu服务器16.04中mysql的默认密码
我已经安装了ubuntu 16.04服务器。Mysql服务器默认安装在其中。当我试图使用ubuntu服务器16.04中mysql的默认密码,mysql,ubuntu,passwords,ubuntu-16.04,ubuntu-server,Mysql,Ubuntu,Passwords,Ubuntu 16.04,Ubuntu Server,我已经安装了ubuntu 16.04服务器。Mysql服务器默认安装在其中。当我试图使用mysql-u root-p访问mysql时,我无法登录mysql,因为我没有密码。是否有默认密码 我也尝试过使用——跳过补助表,即使这样也不起作用。即使尝试使用mysql-u root登录也是失败的 首先你应该停止mysql 使用此命令sudo mysqld\u safe--skip grant tables--skip networking& 然后输入mysql-u root 试着用这种方法,我已经用这种
mysql-u root-p
访问mysql时,我无法登录mysql,因为我没有密码。是否有默认密码
我也尝试过使用——跳过补助表
,即使这样也不起作用。即使尝试使用mysql-u root登录也是失败的
sudo mysqld\u safe--skip grant tables--skip networking&
mysql-u root
试着用这种方法,我已经用这种方法解决了我的问题您只需使用--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
只需运行
sudo dpkg重新配置mysql-server-5.7
您可以通过运行
dpkg--get selections | grep mysql server
找到您安装的版本,我想另一个地方是/var/lib
。
如果您去那里,您可以看到三个具有“有趣”权限的mysql文件夹:
user group
mysql mysql
下面是我为解决root密码问题所做的工作:
跑步后
sudo apt-get purge mysql*
sudo rm -rf /etc/mysql
我还运行了以下命令(而不是我的用户名):
这提示我选择一个新的根密码。
我希望它有帮助这就是你要找的:
sudomysql——默认文件=/etc/mysql/debian.cnf
Debian base Linux上的MySql通常使用带有凭据的配置文件。默认情况下,MySql将root用户的身份验证插件设置为
auth_socket
,这要求系统用户名和db用户名相同
具体来说,以root或sudo-i
身份登录,只需键入mysql
,您将以mysqlroot
身份登录,然后您可以创建其他操作用户
如果您在主机上没有root用户,我想您不应该被允许以root用户身份登录mysql?我在Ubuntu 18.10上新安装了
mysql服务器
,无法使用默认密码登录。然后,只有我知道默认情况下根用户是使用auth\u socket
进行身份验证的。因此,在回答中,当插件更改为mysql\u native\u password
时,我们可以使用mysql默认密码
$ sudo apt install mysql-server
$ sudo cat /etc/mysql/debian.cnf
你可以在那里找到以下几行
user = debian-sys-maint
password = password_for_the_user
然后:
键入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;
要么:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
或:
//对于MySQL 5.7+
mysql>UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';
--更新--
有时需要重新启动mysql服务器
sudo service mysql restart
或
虽然这是一个老问题,但我们中的一些人仍在努力寻找答案。至少我做到了请不要遵循所有冗长的解决方案。通过在mysql命令之前添加sudo,您可以简单地以root用户身份登录mysql,而无需提供任何密码(前提是它是新安装的,或者您在安装后没有更改密码)。
$sudomysql-uroot-p
mysql>
这是因为mysql在一个最新版本中更改了安全模型
希望这有帮助
请注意,在运行MySQL 5.7(及更高版本)的Ubuntu系统中,根MySQL用户默认设置为使用auth_socket插件进行身份验证,而不是使用密码。您需要将其身份验证方法从auth_socket切换到mysql_native_password
正如@BeNiza所说,他们改变了安全模型。我做了以下步骤,它适用于ubuntu 18.04上的mysql 5.7.27
sudo apt安装mysql服务器
MySQL数据库软件现已安装,但其配置尚未完成
为了确保安装的安全,MySQL附带了一个脚本,询问我们是否要修改一些不安全的默认设置。通过键入以下内容启动脚本:
sudo mysql\u安全安装
您应该在每次提示时按Y键并按ENTER键
如果使用弱密码,这将导致问题
通过在mysql命令之前添加sudo,您可以简单地以root用户身份登录mysql,而无需提供任何密码
sudomysql
mysql>通过“您的密码”更改使用mysql_native_密码标识的用户“root”@“localhost”代码>
如果设置弱密码,您将看到以下错误:
错误1819(HY000):您的密码不符合当前的策略要求
mysql>刷新权限代码>
mysql>退出
注意:在配置根MySQL用户以使用密码进行身份验证后,您将无法再使用以前使用的sudomysql命令访问MySQL。相反,您必须运行以下操作:
mysql-u root-p
输入刚刚设置的密码后,您将看到MySQL提示。在最新版本中,MySQL使用auth_socket
,因此要登录,您必须了解自动生成的用户凭据。或者,如果您下载二进制版本,在安装过程中,您可以选择lagacy password
在linux debian版本中安装SQL
sudo apt install mysql-server
要知道密码
sudo cat /etc/mysql/debian.cnf
现在登录
mysql -u debian-sys-maint -p
使用debian.cnf中的密码
如何查看可用的用户记录:
USE mysql
SELECT User, Host, plugin FROM mysql.user;
现在您可以创建一个新用户。使用以下命令:
use mysql;
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'username'@'localhost';
flush privileges;
$ man 1 mysql
列出特定mysql用户的授权
SHOW GRANTS FOR 'username'@'localhost';
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'username'@'localhost';
如何撤销特定mysql用户的所有授权
SHOW GRANTS FOR 'username'@'localhost';
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'username'@'localhost';
从用户帐户列表中删除/删除特定用户
DROP USER 'username'@'localhost';
有关更多命令:
use mysql;
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'username'@'localhost';
flush privileges;
$ man 1 mysql
请不要重置root用户的密码,而是创建新用户并授予权限。这是最佳实践。从Ubuntu 20.04开始,使用默认的MariaDB 10.3软件包,以下是必要的步骤(此线程中早期答案的混合):
以root用户身份登录mysql:sudo mysql-u root
<
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
sudo apt update
sudo apt install mysql-server
sudo mysql_secure_installation
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password';
FLUSH PRIVILEGES;
exit
mysql -u root -p
# type the password now.
UPDATE mysql.user SET
plugin = 'mysql_native_password',
Host = '%',
authentication_string = CONCAT('*', UPPER(SHA1(UNHEX(SHA1('insert password here')))))
WHERE User = 'root';
FLUSH PRIVILEGES;
sudo cat /etc/mysql/debian.cnf
sudo apt-get install mysql-workbench