nik*_*ola 328 mysql macos homebrew mysql-error-1045
我正在尝试使用Homebrew by在mac os 10.6上设置MySQL brew install mysql 5.1.52.
一切顺利,我也很成功mysql_install_db.
但是,当我尝试使用以下命令连接到服务器时:
/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin -u root password 'mypass'
Run Code Online (Sandbox Code Playgroud)
我明白了:
/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'
我也尝试过访问mysqladmin or mysql using -u root -proot,
但无论是否使用密码都无法使用.
这是在全新机器上的全新安装,据我所知,必须可以在没有root密码的情况下访问新安装.我也尝试过:
/usr/local/Cellar/mysql/5.1.52/bin/mysql_secure_installation
Run Code Online (Sandbox Code Playgroud)
但我也明白了
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Lor*_*ers 662
我认为已经安装了旧版本的mysql,最终可能会处于这个位置.我遇到了同样的问题,上述解决方案都没有对我有用.我这样解决了:
使用brew的remove&cleanup命令,卸载launchctl脚本,然后删除mysql目录/usr/local/var,删除我现有的/etc/my.cnf(留下那个给你,如果它适用)和launchctl plist
更新了plist的字符串.另请注意,您的备用安全脚本目录将基于您要安装的MySQL版本.
一步步:
brew remove mysql
brew cleanup
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /usr/local/var/mysql
Run Code Online (Sandbox Code Playgroud)
然后我从头开始:
brew install mysql运行brew建议的命令:(见下面注释)
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
Run Code Online (Sandbox Code Playgroud)使用mysql.server start命令启动mysql ,以便能够登录它
使用备用安全脚本:
/usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
Run Code Online (Sandbox Code Playgroud)launchctl按照brew包脚本输出中的部分,如,
#start
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
#stop
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Run Code Online (Sandbox Code Playgroud)繁荣.
希望有人帮助!
注意:该--force位brew cleanup也将清理过时的桶,认为这是一个新的自制功能.
请注意第二个:评论者说不需要第2步.我不想测试它,所以YMMV!
cor*_*ons 49
以下是结合从Mac上删除所有MySQL然后安装它的详细说明以上所述的Brew Way as Sedorner:
ps -ax | grep mysqlkill任何MySQL进程sudo rm /usr/local/mysqlsudo rm -rf /usr/local/var/mysqlsudo rm -rf /usr/local/mysql*sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plistsudo rm -rf /Library/StartupItems/MySQLCOMsudo rm -rf /Library/PreferencePanes/My*launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist/etc/hostconfig并删除该行MYSQLCOM=-YES-rm -rf ~/Library/PreferencePanes/My*sudo rm -rf /Library/Receipts/mysql*sudo rm -rf /Library/Receipts/MySQL*sudo rm -rf /private/var/db/receipts/*mysql*sudo rm -rf /tmp/mysql*,它不应该工作mysql 并修复任何错误brew doctorbrew remove mysqlbrew cleanupbrew updatebrew install mysqlunset TMPDIR我是谁mysql_install_db --verbose --user=--basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmpmysql.server start以便它在启动时自动启动launchctl 现在应该按预期工作并一直运行
一帆风顺.
Ali*_*lan 43
有同样的问题.似乎设置说明或正在创建的初始表有问题.这就是我在我的机器上运行mysqld的方法.
如果mysqld服务器已在Mac上运行,请先停止它:
launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
使用以下命令启动mysqld服务器,该命令允许任何人以完全权限登录.
mysqld_safe --skip-grant-tables
然后运行mysql -u root现在应该让您无需密码即可成功登录.以下命令应重置所有root密码.
UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES;
现在,如果您终止mysqld_safe的运行副本并在没有skip-grant-tables选项的情况下再次启动它,您应该能够使用mysql -u root -p刚刚设置的新密码登录.
小智 22
自制
brew doctor并解决自制程序希望您修复的任何问题brew install mysqlbrew services restart mysqlmysql.server startmysql_secure_installationmru*_*cci 15
如果brew安装了MySQL 5.7,则该过程与以前的版本略有不同.要重置root密码,请执行以下操作:
sudo rm -rf /usr/local/var/mysql
mysqld --initialize
Run Code Online (Sandbox Code Playgroud)
临时密码将打印到控制台,它只能用于更新root密码:
mysql.server start
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'my-new-password';" | mysql -uroot --password=TEMPORARY_PASSWORD
Run Code Online (Sandbox Code Playgroud)
好的,我有同样的问题并解决了它.出于某种原因,当使用Homebrew安装mysql时,mysql_secure_installation脚本无法正常工作,所以我手动完成了.在CLI上输入:
mysql -u root
Run Code Online (Sandbox Code Playgroud)
这应该让你进入mysql.现在执行以下操作(取自mysql_secure_installation):
UPDATE mysql.user SET Password=PASSWORD('your_new_pass') WHERE User='root';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'
DROP DATABASE test;
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
现在退出并返回到mysql: mysql -u root -p
完全停止mysql.
mysql.server stop < - 可能需要根据您的版本进行编辑ps -ef | grep mysql < - 列出名称中包含mysql的进程kill [PID] < - 通过PID终止进程删除文件.上面的说明很好.我要补充一下:
sudo find /. -name "*mysql*"rm -rf这些文件.请注意,许多程序都有mysql驱动程序,您不想删除它们.例如,不要删除PHP安装目录中的内容.请删除自己的mysql目录中的内容.希望你有自制软件.如果没有,请下载它.
我喜欢以root身份运行brew,但我不认为你必须这样做.编辑2018:您不能再以root身份运行brew
sudo brew updatesudo brew install cmake < - 对mysql的依赖,很有用sudo brew install openssl < - 对mysql的依赖,很有用sudo brew info mysql < - 浏览这个...它让你知道接下来会发生什么sudo brew install mysql --with-embedded; say done< - 使用嵌入式服务器安装mysql.告诉你什么时候完成(我的安装需要10分钟)sudo chown -R mysql /usr/local/var/mysql/ < - mysql在我运行此命令之前不适用于我sudo mysql.server start < - 再一次,确切的语法可能会有所不同| 归档时间: |
|
| 查看次数: |
329171 次 |
| 最近记录: |