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 试着用这种方法,我已经用这种

我已经安装了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
    试着用这种方法,我已经用这种方法解决了我的问题

  • 您只需使用--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
    ,您将以mysql
    root
    身份登录,然后您可以创建其他操作用户


    如果您在主机上没有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