AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 931001
Accepted
A. N. Other
A. N. Other
Asked: 2017-07-02 06:05:32 +0800 CST2017-07-02 06:05:32 +0800 CST 2017-07-02 06:05:32 +0800 CST

mysql root密码问题

  • 772

我在 Ubuntu 16.04 LTS 上。我的 mysql 根密码是什么?如果我输入

mysql -u root -p

它要求我输入密码:我不知道,没有密码也不起作用。mysql是预装的,所以没有选择root密码。如果我尝试再次安装它,使用

sudo apt-get install mysql-server

它说mysql-server已经是最新版本(5.7.18-0ubuntu0.16.04.1)

任何帮助,提示?谢谢。

mysql
  • 4 4 个回答
  • 5867 Views

4 个回答

  • Voted
  1. Nandesh
    2018-08-16T07:51:52+08:002018-08-16T07:51:52+08:00

    对于新的mysql 5.7,如果密码为空,则使用 auth_plugin 。

    sudo在这种情况下,使用特权登录。

    $ sudo mysql -u root -p
    

    登录后,您可以简单地使用它来更新密码。

    $ ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new-password';
    

    如需完整的参考,请点击此处。

    编辑:也可以使用这个(没有-u root):

    $ sudo mysql
    $ ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new-password';
    
    • 4
  2. Bujiraso
    2017-07-02T06:30:14+08:002017-07-02T06:30:14+08:00

    对于 MySQL 5.7,默认密码打印在日志中。快速 grep 可以返回它。

    grep 'temporary password' /var/log/mysqld.log
    

    参考资料: https ://www.percona.com/blog/2016/05/18/where-is-the-mysql-5-7-root-password/

    https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html

    https://stackoverflow.com/questions/33991228/what-is-the-default-root-pasword-for-mysql-5-7

    https://dba.stackexchange.com/questions/127537/setting-root-password-in-fresh-mysql-5-7-installation

    • 1
  3. Best Answer
    ADDB
    2017-07-02T09:19:32+08:002017-07-02T09:19:32+08:00

    两种选择:

    首先是清除 mysql(仅当您还没有数据库时):

    利用

    apt-get purge mysql-server
    

    清除然后

    apt-get install mysql-server
    

    只需重新安装它。安装时它应该要求您输入密码。这是最简单和最快的方法,但是如果像 phpmyadmin 这样的程序已经连接到现有的 MySQL,它可能会出现问题,所以我建议你使用

    或执行以下操作:使用以下命令停止 MySQL 服务器

    sudo service mysql stop 
    

    然后启动安全模式

    sudo /usr/bin/mysqld_safe --skip-grant-tables & 
    

    选择 localhost 作为主机(在最后一个命令之后不会有命令提示符,所以Starting mysqld daemon with databases from [...]在下一个命令中输入消息之后)

    mysql -h localhost
    

    选择mysql

    USE mysql 
    

    (用您的新密码替换 YOURNEWPASSWORD!)输入

    UPDATE mysql.user 
    SET authentication_string=PASSWORD('new_password') 
    WHERE user='root' AND host='localhost'; 
    

    退出

    quit 
    

    并重新启动 MySQL

    sudo mysqladmin shutdown 
    sudo service mysql start
    

    编辑

    该错误与您的 MySQL 套接字有关。首先,您要使用以下命令查找系统上的所有套接字文件:

    sudo find / -type s
    

    您的套接字应该与此类似

    /var/lib/mysql/mysql.sock
    

    (重要的是/mysql.sock部分)

    找到打开套接字的位置后,将行添加或编辑到您的

    /etc/my.cnf 
    

    带有套接字文件路径的文件:

    放

    [mysqld]
    

    一开始和

    socket=/path/to/your/socket/
    

    在文件的最后。

    现在再次尝试 2. 选项。如果它不起作用继续这个解释。

    如果这不能解决您的问题,则某些内容会覆盖 my.cnf 位置,这将导致在 my.cnf 文件指示的位置找不到套接字。然后,当您尝试运行 mysql 命令行客户端时,它会读取 my.cnf 以查找套接字,但它不会找到它,因为它偏离了服务器创建的位置。因此,除非您关心套接字所在的位置,否则只需将 my.cnf 更改为匹配即可。

    要解决此问题,请先关闭mysqld进程

    pkill -9 mysqld
    

    完成此操作后,您可能希望在 /var/run/mysqld/ 中查找 pid 文件并将其删除

    确保您的套接字上的权限使得任何运行 mysqld 的用户都可以读取/写入它。一个简单的测试是打开它以完全读/写,看看它是否仍然有效:

    chmod 755 /var/run/mysqld/mysqld.sock

    资料来源:

    https://dev.mysql.com/doc/refman/5.7/en/mysql-commands.html

    https://ubuntu.flowconsult.at/en/mysql-set-change-reset-root-password/

    https://stackoverflow.com/questions/11990708/error-cant-connect-to-local-mysql-server-through-socket-var-run-mysqld-mysq

    • 1
  4. Arthur Johnston
    2017-11-13T09:02:40+08:002017-11-13T09:02:40+08:00

    UBUNTU 16.04 和 MYSQL 5.7.20

    我没有发现 ADDB 的说明完全有帮助。搜索后,我发现了以下内容(对选项 2 的小重写):

    sudo /etc/init.d/mysql stop
        sudo mkdir /var/run/mysqld/
        sudo chown mysql /var/run/mysqld/
        sudo mysqld_safe --skip-grant-tables &
        mysql -uroot
        use mysql;
        update user set authentication_string=PASSWORD("NEW_PASSWORD_GOES_HERE") where User='root';
        flush privileges;
        quit;
        sudo /etc/init.d/mysql stop
        sudo /etc/init.d/mysql start    
    

    参考:http ://rricketts.com/reset-root-password-mysql-5-7-ubuntu-16-04-lts/

    我的首选方法:

    我使用了 Mysql 用户“debian-sys-maint”(root 等效项)。密码可以在 /etc/mysql/debian.cnf 中找到。以该用户身份登录 Mysql 后,更改任何 Mysql 用户的密码。

    USE mysql
    SELECT root@localhost;
    ALTER USER user IDENTIFIED BY 'auth_string';
    ALTER USER 'Name_of_user_to_be_modified'@'Hostname (ie:localhost)' IDENTIFIED BY 'NEW_PASSWORD';
    flush privileges;
    exit;
    

    参考: https ://serverfault.com/questions/9948/what-is-the-debian-sys-maint-mysql-user-and-more

    • 0

相关问题

  • 上网本上的 MySQL 数据建模

  • 从终端备份mysql

  • 为什么 /etc/init.d/mysql 会运行错误的暴发户工作?

  • 将引号添加到文件中的字符串

  • 如何将 MySQL 数据文件移动到不同的分区?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve