我最近安装了VM和Vagrant来处理我的Laravel项目。所以我对此很陌生。我的主机上没有安装MySQL。我尝试Vagrant up
然后ssh vagrant@127.0.0.1 -p 2222
。这一切都很好,花花公子。我想访问MySQL而无法访问。这就是我所做的:
mysql -u root -p (password "") -h localhost
mysql -u root -p (password "root") -h localhost
mysql -u root -h localhost
甚至所有没有-h localhost
的人。我之前没有设置MySQL所以请记住,我从来没有创建帐户甚至访问MySQL。
我四处搜寻,我发现了这个:
转到:
sudo vi /etc/mysql/my.cnf
并发表评论:skip-external-locking
并更改此内容:bind-address: 0.0.0.0
。
然后我使用sudo service mysql restart
返回并重新启动MySQL并再次尝试这些命令......仍无法访问。
错误即时消息:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
然而,有些东西让我感到有趣......
我去了cd /etc/mysql
,我发现了一个名为debian.cnf
的文件,它有一个用户名和密码,我尝试了用户名和密码,我登录了!但我不认为我应该这样做。并且该文件提供的密码可能是某些内容的哈希值。
更新
我忘了添加:如果我只是提供mysql
,我会收到此错误ERROR 1045 (28000): Access denied for user 'vagrant'@'localhost' (using password: NO)
答案 0 :(得分:3)
考虑到你在当地的流浪服务器上工作,我认为可以尝试排除任何其他可能出现的问题。绝对不要在生产服务器上执行此操作,并确保只有您可以访问您的Vagrant计算机。
# fill in the blanks for root password, db name, username (local), and password
mysql -u root -p"rootpassword" -e "CREATE DATABASE db_name;
CREATE USER 'local'@'localhost' IDENTIFIED BY 'password';
CREATE USER 'local'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'local'@'localhost';
GRANT ALL PRIVILEGES ON * . * TO 'local'@'%';
FLUSH PRIVILEGES;"
# change bind address to allow connections from anywhere
sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
# restart the sql service
sudo service mysql restart
答案 1 :(得分:3)
我有同样的问题,但在
之后vagrant up && vagrant ssh
我做了
sudo service mysql restart
我可以毫无错误地连接到mysql控制台。
答案 2 :(得分:-1)
我跑这个
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
表示laravel 5.2和默认.env值
{{1}}