首页 文章

在OS X上设置MySQL root用户密码

提问于
浏览
201

我刚刚在Mac OS X上安装了MySQL . 下一步是设置root用户密码,所以接下来我做了这个:

  • 启动终端应用程序以访问Unix命令行 .

  • 在Unix提示符下我执行了以下命令:

$ cd /usr/local/mysql/bin
$ ./mysqladmin -u root password 'password'

但是,当我执行命令时

$ ./mysql -u root ,这是答案:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 224
Server version: 5.5.13 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

我可以在没有任何密码的情况下进入 mysql 命令行!

为什么是这样?

16 回答

  • 84

    登录MySQL终端时,请尝试使用命令 FLUSH PRIVILEGES . 如果这不起作用,请在MySQL终端中尝试以下命令集

    $ mysql -u root
    mysql> USE mysql;
    mysql> UPDATE user SET password=PASSWORD("NEWPASSWORD") WHERE User='root';
    mysql> FLUSH PRIVILEGES;
    mysql> quit
    

    用你想要的任何密码更改NEWPASSWORD . 应该全部设定!

    Update :从MySQL 5.7开始, password 字段已重命名为 authentication_string . 更改密码时,请使用以下查询更改密码 . 所有其他命令保持不变:

    mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';
    
  • 5

    如果您忘记了为root设置的密码并需要重置密码,请按照下列步骤操作:

    • 停止mysqld服务器,这因安装而异

    • 使用权限绕过以安全模式运行服务器

    sudo mysqld_safe --skip-grant-tables;

    • 在新窗口中连接数据库,设置新密码并刷新权限并退出:

    mysql -u root

    对于早于MySQL 5.7的MySQL,请使用:

    UPDATE mysql.user SET Password=PASSWORD('your-password') WHERE User='root';

    对于MySQL 5.7使用:

    USE mysql;

    UPDATE mysql.user SET authentication_string=PASSWORD("your-password") WHERE User='root';

    刷新并退出:

    FLUSH PRIVILEGES;

    \q

    • 停止安全模式服务器并重新启动常规服务器 . 新密码现在可以使用了 . 对我来说就像一个魅力:)
  • 177

    一旦安装了MySQL,就需要 Build “root”密码 . 如果您没有 Build root密码,那么,没有root密码,并且您无需密码即可登录 .

    那就是说,你需要 Build 一个root密码 .

    使用终端输入以下内容:

    安装:设置root用户密码:

    /usr/local/mysql/bin/mysqladmin -u root password NEW_PASSWORD_HERE
    

    如果您犯了错误,或者需要更改root密码,请使用以下命令:

    更改root密码:

    cd /usr/local/mysql/bin/
    ./mysql -u root -p
    > Enter password: [type old password invisibly]
    
    use mysql;
    update user set password=PASSWORD("NEW_PASSWORD_HERE") where User='root';
    flush privileges;
    quit
    
  • 0
    • 停止mysqld服务器 .

    • Mac OSX: System Preferences > MySQL > Stop MySQL Server

    • Linux (From Terminal): sudo systemctl stop mysqld.service

    • 使用权限绕过以安全模式启动服务器

    • From Terminal: sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables

    • new 终端窗口中:

    • sudo /usr/local/mysql/bin/mysql -u root

    • 这将打开mysql命令行 . 从这里输入:

    • UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root';

    • FLUSH PRIVILEGES;

    • quit

    • 再次停止mysqld服务器并以正常模式重新启动它 .

    • Mac OSX (From Terminal): sudo /usr/local/mysql/support-files/mysql.server restart

    • Linux Terminal: sudo systemctl restart mysqld

  • 2

    mysql网站提供的说明是如此清晰,比上面提到的

    • $ sudo /usr/local/mysql/support-files/mysql.server stop

    • $ sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables

    • /usr/local/mysql/support-files/mysql

    • mysql> FLUSH PRIVILEGES;

    • mysql> ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'MyNewPass';

    • mysql> exit 或Ctrl z

    • $ sudo /usr/local/mysql/support-files/mysql.server start

    • /usr/local/mysql/support-files/mysql -u root -p

    • 输入新密码,即MyNewPass

    参考:http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

  • 4

    对于新的Mysql 5.7由于某种原因,Mysql的bin命令没有附加到shell:

    • 安装后重启Mac .

    • 启动Mysql:

    系统偏好设置> Mysql>开始按钮

    • 转到终端的Mysql安装文件夹:

    $ cd /usr/local/mysql/bin/

    • 访问Mysql:

    $ ./mysql -u root -p

    并输入给安装的初始密码 .

    • 在Mysql终端更改密码:

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';

  • 44

    在终端中,写入 mysql -u root -p 并点击Return . 输入您必须记下的当前mysql密码 . 并设置密码 SET PASSWORD = PASSWORD('new_password');

    有关更多详细信息,请参阅此文档here .

  • 21

    如果您忘记了MySQL root密码,无法记住或想要中断......您可以在Linux或OS X中从命令行重置mysql数据库密码,只要您知道该框的root用户密码即可你是在:

    (1)停止MySQL

    sudo /usr/local/mysql/support-files/mysql.server stop
    

    (2)以安全模式启动:

    sudo mysqld_safe --skip-grant-tables
    

    (3)这将是一个持续的命令,直到该过程完成 so open another shell/terminal window ,无需密码登录:

    mysql -u root
    
    UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
    

    在上面的UPDATE命令中,只需用您自己的新密码替换'password',确保保留引号

    (4)保存完全

    FLUSH PRIVILEGES;
    
    \q
    

    (5)启动MySQL

    sudo /usr/local/mysql/support-files/mysql.server start
    
  • 295

    当我安装OS X Yosemite时,我遇到了Mysql的问题 . 我尝试了很多方法,但都没有用 . 我实际上发现了一种非常简单的方法试试吧 .

    • 首先从su权限登录终端 .

    sudo su

    • 停止mysql

    sudo /usr/local/mysql/support-files/mysql.server stop

    • 以安全模式启动:

    sudo mysqld_safe --skip-grant-tables

    • 打开另一个终端,以su权限登录,无需密码登录mysql

    mysql -u root

    • 更改密码

    UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';

    • 刷新权限

    FLUSH PRIVILEGES;

    • 你现在完成了
  • 10

    现有答案中提到的方法不适用于mysql 5.7.6或更高版本 . 根据mysql文档,这是推荐的方法 .

    B.5.3.2.3 Resetting the Root Password: Generic Instructions

    MySQL 5.7.6及更高版本:

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

    参考:https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

  • 3

    如果您忘记密码,@radtek's answer为我工作,除了在我的情况下,我有set up MySQL using brew这意味着他的第1步和第2步答案必须改为:

    • /usr/local/bin/mysql.server stop

    • /usr/local/bin/mysqld_safe --skip-grant-tables

    Note: 缺少 sudo .

  • 0

    停止MySQL服务器

    sudo /usr/local/mysql/support-files/mysql.server stop

    以安全模式启动MySQL

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

    更改root密码

    /usr/local/mysql/bin/mysql -u root

    use mysql;
    UPDATE user SET authentication_string=PASSWORD('NEW_PASSWORD') WHERE user='root';
    FLUSH PRIVILEGES;
    exit
    

    测试

    运行 /usr/local/mysql/bin/mysql -u root

    现在输入新密码以开始使用MySQL .

  • 42

    如果您忘记了密码或想要将其更改为您的mysql:

    • 启动终端并输入:

    sudo su

    • 为您输入系统通行证

    • 停止你的mysql:

    sudo /usr/local/mysql/support-files/mysql.server停止

    • 保持此窗口打开,运行第二个终端窗口并在此处输入:

    mysql -u root

    • 并更改mysql的密码:

    UPDATE mysql.user SET authentication_string = PASSWORD('new_password')WHERE User ='root';

    其中“new_password” - 你的新通行证 . 你不需要mysql的旧传递 .

    • 冲洗,退出并检查你的新通行证:

    FLUSH特权;

    • 关闭所有窗口并检查mysql的新传递 . 祝好运 .
  • 1

    这正是对我有用的:

    • 确保没有其他MySQL进程正在运行 . 要检查这一点,请执行以下操作:
    a.From the terminal, run this command:
           lsof -i:3306 
       If any PID is returned, kill it using kill -9 PID
     b. Go To System Preferences > MySQL > check if any MySQL instances 
        are running, stop them.
    
    • 使用以下命令启动MySQL:
    sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
    
    • 每个用户的密码分别存储在用户和authentication_string列下的mysql.user表中 . 我们可以将表更新为:
    UPDATE mysql.user SET authentication_string='your_password' where User='root'
    
  • 1

    MySQL 8的变化很大 . 我发现_580773的以下修改适用于Mac OS X.

    使用SQL创建临时文件 $HOME/mysql.root.txt 以更新root密码:

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

    这使用 mysql_native_password 来避免Authentication plugin 'caching_sha2_password' cannot be loaded错误,如果省略该选项,我会得到错误 .

    停止服务器,以 --init-file 选项开始设置root密码,然后重新启动服务器:

    mysql.server stop mysql.server start --init-file=$HOME/mysql.root.txt mysql.server stop mysql.server start

  • 15

    我认为这应该有效:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD'
    

    (注意,如果root不是root,你应该用你的用户名替换root)

相关问题