代码之家  ›  专栏  ›  技术社区  ›  Theo

无法创建架构-MySQL工作台

  •  1
  • Theo  · 技术社区  · 7 年前

    我启动MAMP并尝试通过 localhost 127.0.0.1 ,我尝试了所有可能的密码,我认为它是正确的,但由于某些原因,它仍然不喜欢,所以我想我忘记了它不知何故。我需要帮助。


    尝试#1

    输入所有可能的密码

    MySQL -u root -h localhost -p

    我试过10个可能的密码

    我得到了

    错误1045(28000):用户“root”@“localhost”的访问被拒绝(使用密码:否)


    尝试#2

    输入可能的密码

    MySQL -u root -h localhost

    我得到了


    尝试#3

    MySQL.server stop

    我得到了

    错误!找不到MySQL服务器PID文件!

    我在试着运行这个

    mysqld_safe --skip-grant-tables &

    我得到了


    mysqld_safe—跳过授权表&

    我得到了

    [1] 72194
    🌈  ~  2017-10-04T12:13:42.6NZ mysqld_safe Logging to '/usr/local/var/mysql/BH-MacBook-Pro-15-512GB.local.err'.
    2017-10-04T12:13:42.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
    2017-10-04T12:13:44.6NZ mysqld_safe mysqld from pid file /usr/local/var/mysql/BH-MacBook-Pro-15-512GB.local.pid ended
    

    打开新选项卡

    MySQL -u root

    我还是觉得


    尝试#5

    关闭我的MAMP应用程序,然后运行

    mysqld_safe—跳过授权表&

    我得到了

    ~2017-10-04T12:13:42.6NZ mysqld_safe Logging to'/usr/local/var/mysql/BH-MacBook-Pro-15-512GB.local.err'。
    2017-10-04T12:13:44.6NZ mysqld_safe mysqld from pid file/usr/local/var/mysql/BH-MacBook-Pro-15-512GB.local.pid结束
    

    打开新选项卡

    MySQL-u根

    错误1045(28000):用户“root”@“localhost”的访问被拒绝(使用密码:否)


    我再也不想尝试什么了。


    这是我的MySQL进程

    ps aux | grep MySQL

    bheng            95850   0.2  1.0  2869440 175404   ??  S     8:48AM   0:00.28 /usr/local/opt/mysql/bin/mysqld --basedir=/usr/local/opt/mysql --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/opt/mysql/lib/plugin --bind-address=127.0.0.1 --log-error=/usr/local/var/mysql/bh-mbp-15-512gb.ad.benu.net.err --pid-file=/usr/local/var/mysql/bh-mbp-15-512gb.ad.benu.net.pid
    _mysql             124   0.0  0.0  2864848   4040   ??  Ss   22Sep17   0:32.26 /usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid --keyring-file-data=/usr/local/mysql/keyring/keyring --early-plugin-load=keyring_file=keyring_file.so
    bheng            95863   0.0  0.0  2423384    396 s009  R+    8:48AM   0:00.00 grep mysql
    bheng            95749   0.0  0.0  2448756   2496   ??  S     8:48AM   0:00.03 /bin/sh /usr/local/opt/mysql/bin/mysqld_safe --bind-address=127.0.0.1 --datadir=/usr/local/var/mysql
    bheng            66379   0.0  0.1  2696936   9304   ??  S     8:06AM   0:00.51 /Applications/MAMP/Library/bin/mysqld --basedir=/Applications/MAMP/Library --datadir=/Applications/MAMP/db/mysql --plugin-dir=/Applications/MAMP/Library/lib/plugin --log-error=/Applications/MAMP/logs/mysql_error_log.err --pid-file=/Applications/MAMP/tmp/mysql/mysql.pid --socket=/Applications/MAMP/tmpmysql/mysql.sock --port=8889
    bheng            66263   0.0  0.0  2446708   2100   ??  S     8:06AM   0:00.02 /bin/sh /Applications/MAMP/Library/bin/mysqld_safe --port=8889 --socket=/Applications/MAMP/tmp/mysql/mysql.sock --pid-file=/Applications/MAMP/tmp/mysql/mysql.pid --log-error=/Applications/MAMP/logs/mysql_error_log
    

    0 回复  |  直到 8 年前
        1
  •  9
  •   nbari    8 年前

    这就是你在macOS Sierra中的方法,也许你可以通过 pkg

    enter image description here

    如果已启动并正在运行,请打开终端并运行此命令:

    pgrep -fl mysql
    

    mysqld

    6283 /usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid
    

    下一步是停止MySQL,您可以通过单击系统首选项菜单并单击 Stop MySQL Server 按钮,一旦在终端中停止,您将需要重新启动服务器,但有一些额外的选项,如:

    sudo /usr/local/mysql/bin/mysqld \
      --skip-grant-tables \
      --skip-networking \
      --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid
    

    它实际上是来自 pgrep -fl mysql 但在这种情况下,您只需添加:

    --skip-grant-tables --skip-networking
    

    完成此操作后,您会注意到系统首选项中的菜单再次变为绿色,MySQL应该已经启动并运行,现在您可以尝试登录并更改密码:

    mysql -uroot
    mysql> FLUSH PRIVILEGES;
    mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('secret');
    mysql> FLUSH PRIVILEGES;
    mysql> exit
    

        2
  •  6
  •   Ravi    8 年前

    请按照相同的顺序进行操作。

    mysql.server stop
    

    然后,以安全模式启动MySQL服务器

    mysql.server start --skip-grant-tables --skip-networking
    

    然后,使用 root

    mysql -u root
    

    none mysql

    MariaDB [(none)]> use mysql;
    Database changed
    

    同时更新 authentication_string password 具有相同密码的列,如下所示(如果获取列未找到错误,则删除一个)

    MariaDB [mysql]> update user set authentication_string=PASSWORD('password'), password=PASSWORD('password') where user='root';
    
    MariaDB [mysql]> FLUSH PRIVILEGES;
    MariaDB [mysql]> quit;
    

    MySQL 服务器和MAMP应用程序。

    然后,寻找 config.inc.php MAMP文件夹中的文件(您可以使用 + 空间

    您可能没有更改此文件的权限。更新所需文件的权限后 $cfg['Servers'][$i]['password'] 并更新密码值,如下所示。

    $cfg['Servers'][$i]['password'] = 'password';
    

    保存此文件并在正常模式下重新启动所有内容。尝试连接 使用新密码的用户,如下所示:

    mysql -uroot -ppassword
    
        3
  •  1
  •   Kévin Dupont    8 年前

    必须按如下方式重置MySQL根密码:

    /etc/init.d/mysql stop
    /usr/sbin/mysqld --skip-grant-tables --skip-networking &
    mysql -u root
    
    mysql> FLUSH PRIVILEGES;
    mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('new_password');
    mysql> FLUSH PRIVILEGES;
    mysql> exit;
    
    service mysql restart