Vagrant SSH - 设置和连接MySQL

时间:2014-07-20 23:34:44

标签: mysql laravel ssh virtual-machine vagrant

我最近安装了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)

3 个答案:

答案 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}}