› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
reid2017
V2EX  ›  MySQL

绝望, brew 安装 mariadb 无法重置密码

  •  
  •   reid2017 · Jul 23, 2019 · 5994 views
    This topic created in 2620 days ago, the information mentioned may be changed or developed.
    搞了两晚,安装了四次,前两次 mysql,后两次 mariadb,同样的问题,以前的版本在 /usr/local/var/log 会有个 mysqld.log 文件,会有第一次启动的随机密码,现在最新 mac 系统用 brew 安装没有这个日志了,各种方法试了无数遍,奶奶的。。

    有大佬打救一下吗?
    12 replies  •  2020-03-03 16:30:04 +08:00
    msg7086
        1
    msg7086  
       Jul 23, 2019 via Android
    直接无密码启动然后重置 root 密码不行吗?
    chinvo
        2
    chinvo  
       Jul 23, 2019
    如果有旧的数据库 data 文件,不会生成新密码

    很久没用过 brewed database 了,都是 docker + volume map
    reid2017
        4
    reid2017  
    OP
       Jul 23, 2019
    @msg7086 不行。。
    nguoidiqua
        5
    nguoidiqua  
       Jul 23, 2019
    新版 MySQL 或是 MariaDB 密码字段不是 password 了,改成 authentication_string 了,如果去重设 password 字段是没用的。(这个不一定,)

    UPDATE user SET authentication_string = password('your_password') WHERE User = 'your_username';

    如果你进都进不去,那是因为 user 的 plugin 字段 设定为 Unix_Socket 了,无法密码登录,只能 sudo mysql 强登,然后把这个 plugin 字段改成空值或者 mysql_native_password 才能用传统密码方式登入。

    update mysql.user set plugin='mysql_native_password' where user='your_username';
    或
    update mysql.user set plugin='' where user='your_username';
    Immortal
        6
    Immortal  
       Jul 23, 2019
    以前被恶心过几次。。。
    然后选择了 docker 香
    reid2017
        7
    reid2017  
    OP
       Jul 23, 2019
    @nguoidiqua
    ERROR 1348 (HY000): Column 'authentication_string' is not updatable
    reid2017
        8
    reid2017  
    OP
       Jul 23, 2019
    ```

    MariaDB [mysql]> select host,user,password,authentication_string,plugin from user;
    +---------------+------+----------+-----------------------+-----------------------+
    | Host | User | Password | authentication_string | plugin |
    +---------------+------+----------+-----------------------+-----------------------+
    | localhost | root | invalid | invalid | mysql_native_password |
    | localhost | reid | invalid | invalid | mysql_native_password |
    | localhost | | | | |
    | reiddembp.lan | | | | |
    +---------------+------+----------+-----------------------+-----------------------+
    4 rows in set (0.001 sec)

    ```
    qfdk
        9
    qfdk  
       Jul 23, 2019 via iPhone
    docker 吧 https://blog.qfdk.me/post/docker%20 初始化 MySQL 数据库%20%2B%20phpmyadimin.html 给你个我的链接
    WispZhan
        10
    WispZhan  
       Jul 23, 2019
    别拿 brew 折腾这些东西。某些场景下 brew 一堆问题。
    ---
    直接拿二进制包手动装省事。
    nguoidiqua
        11
    nguoidiqua  
       Jul 23, 2019
    @reid2017

    你这错误我不知道什么原因,我新安装个了一个 MariaDB 10.3.15 试了下,前面的改法依然有效。

    我想你这个可能是自己改动了什么别的地方造成的,可以先 flush privileges 再试试或者重启下数据库再试试,实在不行清除配置文件重新安装下。

    或者试试

    ALTER USER 'your_username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';

    或

    SET password for 'your_username'@'localhost' = PASSWORD('your_password');
    nguoidiqua
        12
    nguoidiqua  
       Mar 3, 2020
    搞笑,搜索搜到我自己以前的回答了。

    现在我自己新装的 MariaDB 是 10.4 版本,用 update 更新修改密码的时候也遇到 ERROR 1348。我想可能 brew 编译安装的版本更新比较快,当时就已经是 10.4。

    根据 MariaDB 官方的说明,10.4 版本的 mysql 库里面增加了一个 global_priv 表,限制了对 mysql 库进行 update 操作。

    所以要改密码只能用 ALTER USER 和 SET password 指令了,例如 #11 楼的两条指令。

    官方给了另外一钟修改指令:

    ALTER USER your_username@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD("your_password");
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2545 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 01:57 · PVG 09:57 · LAX 18:57 · JFK 21:57
    ♥ Do have faith in what you're doing.