mysql -u root -p
我遇到了这个错误:
访问被拒绝,用户'root'@'localhost'(未使用密码)。
我已经重新安装了MySQL五次,但它仍然要求输入密码。我该如何解决这个问题?
如果你正在使用macOS,并通过Homebrew安装MariaDB,你可以使用操作系统的根密码,然后将密码重置为任何你想要的密码,在本例中,我删除了root的密码:
sudo mysqladmin -u root password ''
sudo mysqladmin -u root password 'NEW-PASSWORD-HERE'
我在 Mac 上进行新安装时遇到了这个问题。我使用以下命令安装了 MariaDB:
brew install mariadb
服务随即启动:
brew services start mariadb
当我运行'mysql_secure_installation'时,由于提示输入root密码,我无法完成操作。后来我在安装输出内容中发现:
mysql_install_db --verbose --user=jonny --basedir=/usr/local/Cellar/ ....
我尝试以mysql_install_db输出中指定的用户名登录,结果成功,例如:
mysql -u jonny
如果你想为root用户设置密码,在mysql提示符下执行以下操作:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('ToPsEcReT');
mysql_secure_installation
应该可以工作?https://mariadb.com/resources/blog/installing-mariadb-10-1-16-on-mac-os-x-with-homebrew/ - Luukbrew install mysql_install_db
时,它是由brew触发的。那篇博客建议手动运行它。也许brew的操作流程已经改变了:shrug: - jonny这对我有效,希望对你也有用!!!请按照以下步骤操作:
brew services stop mysql
pkill mysqld
# NB: the following command will REMOVE all your databases!
# Make sure you have backups or SQL dumps if you have important data in them already.
rm -rf /usr/local/var/mysql/
brew services restart mysql
mysql -uroot
UPDATE mysql.user SET authentication_string=null WHERE User='root';
FLUSH PRIVILEGES;
exit;
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password
BY'YOUR_PASS_WORD!!!!';
rm -rf /usr/local/var/mysql/
命令将会删除你电脑上的所有数据库和Mysql数据! - Lashaemysqladmin -u root
而不使用-p
的建议,这实际上是显而易见的。mysql -uroot -proot
,这对我有效。brew info mysql
:我们已经安装了您的MySQL数据库,但没有设置根密码。要保护它,请运行:mysql_secure_installation - sscmysql
请检查您的主目录中是否有一个名为 .my.cnf 的文件。这可能是问题所在。
所以,如果有人遇到了和我一样的情况和配置,也快要发疯了-这对我有效。
经过漫长的故事后,我安装了一个自动重启的MariaDB(这是brew的作用),当我杀死它的进程时,它就会自动重新启动。它有一个根密码,而我不知道。
$ brew services list
它显示的内容如下:
mariadb started jdoe /path/to/homebrew.mxcl.mariadb.plist
停止MySQL服务器:
$ brew services stop mariadb
然后再次启动没有 root 用户(而且不使用brew):
$ mariadbd --skip-grant-tables &
mysql_secure_installation
对我无效,因为使用了 --skip-grant-tables
,而没有使用 --skip-grant-tables
又需要密码(但我没有密码)。尝试 $(brew --prefix mysql)/bin/mysqladmin -u root password hunter2
时只返回奇怪的错误且未起作用;$(brew --prefix mariadb)/bin/mysqladmin -u root password hunter2
也不起作用,会给出不同的错误和建议,但对我无效。$ mysql
。alter user
,但仅在您完成flush privileges;
后才有效,请先执行该操作。然后执行以下操作:MariaDB [(none)]> alter user 'root'@'localhost' identified by 'hunter2';
MariaDB [(none)]>
是MySQL提示符)flush privileges;
。退出MySQL客户端。现在就brew而言,MariaDB仍未运行,因此使用$ ps aux | grep -i mariadb
查找pid并$ kill -9 <pid>
。然后使用$ brew services start mariadb
重新启动它。
mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/mysql/5.5.25a/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
/usr/local/Cellar/mysql/5.5.25a/bin/mysqladmin -u root password 'YOURPASSWORD'
其中YOURPASSWORD
是root用户的密码。
mysql_secure_installation
命令并回答相应问题即可,非常简单。 - Abhinav Singh