我猜我把桌子弄乱了,user
试图更新密码,运行类似
UPDATE mysql.user SET authentication_string='root' WHERE User='root';
无需刷新权限。现在我基本上被锁定了,即使我尝试也无法连接到 mysql cli
sudo mysqld_safe --skip-grant-tables &
有一种方法可以安全地删除所有 mysql 数据库(包括user
表)?
(MacOS 莫哈韦)
这是/usr/local/bin
与mysql
mysql mysqladmin mysqlpump
mysql.server mysqlbinlog mysqlrouter
mysql_client_test mysqlcheck mysqlrouter_plugin_info
mysql_config mysqld mysqlshow
mysql_config_editor mysqld_multi mysqlslap
mysql_secure_installation mysqld_safe mysqltest
mysql_ssl_rsa_setup mysqldump mysqlxtest
mysql_tzinfo_to_sql mysqldumpslow
mysql_upgrade mysqlimport
答案1
首先备份您的/etc/mysql
和/var/lib/mysql
目录。
然后尝试初始化
mysql_install_db
从头开始重新创建 mysql 模式。
你可以在这里读到它:https://dev.mysql.com/doc/refman/5.6/en/mysql-install-db.html
答案2
如果您不需要数据库或任何设置,您可以简单地卸载 mysql 并清除配置文件。
步骤如下:
brew uninstall mysql
brew cleanup
sudo rm -rf /usr/local/var/mysql ## verify within my.cnf
附言:由于我不是 MacOS 用户,因此对此持保留态度。
答案3
我遇到了这个问题,基本上你能找到的所有解决方案都是过时的. 使用 mysql 8.0.15 你必须遵循本指南 https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
使用方法UPDATE mysql.user SET authentication_string..
将会锁定你,无法访问你自己的 mysql 服务器(即使有,你也无法解决mysqld_safe --skip-grant-tables
)。