Mysql 宅基地问题
我正在使用homestead并尝试通过phpmyadmin登录我的mysql数据库。我已经使用同样的设置好几年了。 昨天我开始工作,我运行命令Mysql 宅基地问题,mysql,homestead,Mysql,Homestead,我正在使用homestead并尝试通过phpmyadmin登录我的mysql数据库。我已经使用同样的设置好几年了。 昨天我开始工作,我运行命令homestead up——但这次一切似乎都有点不同于平时。例如,vagrant检测到不安全的密钥,然后vagrant自动将其替换为新生成的密钥对-好吧,这还不错,我想这完全没问题 在此之后,它停止并启动了九次nginx和php5 fpm,然后出现了==>默认值:mysql: ==>默认值:[警告]在命令行界面上使用密码可能不安全。 ==>默认值:请使用-
homestead up
——但这次一切似乎都有点不同于平时。例如,vagrant检测到不安全的密钥
,然后vagrant自动将其替换为新生成的密钥对-好吧,这还不错,我想这完全没问题
在此之后,它停止并启动了九次nginx
和php5 fpm
,然后出现了==>默认值:mysql:
==>默认值:[警告]在命令行界面上使用密码可能不安全。
==>默认值:请使用--connect expired password选项或在交互模式下调用mysql。
SSH命令以非零退出状态响应。流浪汉
假设这意味着命令失败。此命令的输出
应该在上面的日志中。请阅读输出以确定需要什么
出错。
好的,我登录了homestadessh
,然后mysql-u homestade-p password
并设置了新密码。没有抛出错误。太好了
然后我试着用homestead
用户名和新密码登录我的数据库phpmyadmin.app
,但是。。由于某种原因,我的数据库消失了
嗯。。。在伟大的谷歌搜索会话之后,我注意到当我从mysql.user编写mysql>select*时代码>命令,有两个homestead用户。第一个在0.0.0.0
ip下,第二个在%
-我很确定这会以某种方式导致我的问题,因为使用%
的宅地用户是在第一次出现此问题的同一天创建的
或者。。我完全错误的方向和问题的原因不同。不管是什么情况,我来这里是想向比我聪明一点的人寻求帮助
我是否应该删除第二个宅地用户,或者你有什么建议
非常感谢您抽出时间。您是如何设置密码的?听起来在这个过程中,您可能创建了一个没有适当权限的新用户。这解释了为什么在作为该用户连接时无法看到数据库
然后,您删除了该用户,这将使您回到开始的位置,但您还将主机从0.0.0.0更改为“localhost”。我不熟悉在这个位置使用0.0.0.0语法,但它可能意味着所有TCP主机,就像在my.cnf中使用绑定地址一样。通常我使用“%”,但我不太愿意这样做,因为如果0.0.0.0正常工作,我就不会弄乱它。但无论如何,“localhost”不同于“%”或任何其他TCP连接;localhost专门指套接字连接,而其他的则指TCP连接。可能您的应用程序正在使用tcp协议,而您只是删除了该用户的权限(通过告诉MySQL只允许通过套接字协议进行连接)
我建议以下任何一种解决方案:
- 将现有用户还原为0.0.0.0主机名
- 将现有用户的主机名更改为%
- 添加新用户,但对用户需要访问的数据库授予适当的权限
- 告诉您的应用程序使用套接字协议而不是tcp网络访问MySQL(具体取决于您的系统配置)
我有这个问题很多天了,它真的让我发疯了。不知道为什么,直到最近,我的家园和它访问mysql的凭证都很好。基本上,我只是创建一个新用户,并停止使用homestead作为用户
如果您仍然可以使用ssh连接到它和sudosu,那么您可以试试这个
1) 流浪汉
2) sudo su
3) mysql-u root-p(当你是超级用户时,mysql不会问你密码)
4) 然后简单地设置一个新用户
创建由“密码”标识的用户“newuser”@“localhost”
然后
授予**上的所有特权到'newuser'@'localhost'
5) 然后,使用新用户登录到phpmyadmin。首先查看相关问题
对于Laravel Homestead的此类问题,我建议扔掉流浪者箱并重新初始化。Homestead只是一个沙箱(只要你备份你的客户机数据,重建沙箱就没有坏处)
首先,使用mysqldump或Sequel Pro之类的工具备份任何MySQL数据库或其他客户端计算机信息,因为在重新配置您的设备时,这些信息将丢失。
然后:
我删除了´%´homestead用户,并将´0.0.0´主机更改为´localhost´,并尝试重置密码,但无论我做什么,它都拒绝访问。这真是令人沮丧。
# from host machine
cd ~/Homestead
vagrant destroy
vagrant box prune
vagrant up --provision
# if still seeing MySQL errors during provisioning, do the steps in https://stackoverflow.com/a/46106953/539149 or:
vagrant ssh
# log into mysql (for Homestead your password is likely "secret")
mysql -h localhost -u homestead -p
SET PASSWORD = PASSWORD('secret');
-- A) set password to never expire:
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
-- or B) to change password as well:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password', 'root'@'localhost' PASSWORD EXPIRE NEVER;
-- quit mysql
quit
# exit back to host shell
exit
vagrant up --provision