Thêm vào những gì đã được @nonsenz nói, Nếu bạn sử dụng tập lệnh cung cấp của Puphpet.com thì bạn có thể thêm tệp bash vào thư mục / Puphpet / files / startup-always và đặt tất cả các lệnh của bạn vào đó. Bất cứ lúc nào vagrant bắt đầu hoặc tải lại nó sẽ gọi kịch bản:
mysql.sh
#!/bin/bash
echo "Updating mysql configs in /etc/mysql/my.cnf."
if [ 'sudo sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf' ]; then
echo "Updated mysql bind address in /etc/mysql/my.cnf to 0.0.0.0 to allow external connections."
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
fi
Thậm chí tốt hơn (để cho phép đầu ra sạch hơn)
mysql.sh
#!/bin/bash
echo "Updating mysql configs in /etc/mysql/my.cnf."
sudo sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
echo "Updated mysql bind address in /etc/mysql/my.cnf to 0.0.0.0 to allow external connections."
sudo service mysql stop
sudo service mysql start
Điều này cho phép tôi kết nối trực tiếp IDE (PhpStorm) của mình với cơ sở dữ liệu trên máy khách của mình thông qua vagrant. Tất nhiên, tôi đã cấp cho người dùng mysql quyền truy cập vào '%' và chuyển tiếp cổng 3306 trên máy khách sang một cổng (3309) trên máy chủ. Cấp quyền truy cập cũng có thể được thực hiện trong tập tin này.
Thậm chí Better'er (thực thi mysql thêm vào)
mysql.sh
#!/bin/bash
echo "Updating mysql configs in /etc/mysql/my.cnf."
sudo sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
echo "Updated mysql bind address in /etc/mysql/my.cnf to 0.0.0.0 to allow external connections."
echo "Assigning mysql user user1 access on %."
sudo mysql -u user1 -pyourpassword --execute "GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' IDENTIFIED BY 'yourpassword' with GRANT OPTION; FLUSH PRIVILEGES;" yourdatabase
echo "Assigned mysql user user1 access on all hosts."
sudo service mysql stop
sudo service mysql start
sudo
dẫn đến lỗi "xin lỗi, bạn phải có lỗi" (đã sửa bằng cách xóa 'sudo' khỏi các câu lệnh) và dịch vụ MySQL của tôi đã được khởi động lại bằng cách sử dụng/etc/init.d/mysqld stop
và/etc/init.d/mysqld start
. Cả hai có thể chỉ là các quirks CentOS chứ không phải là lỗi với tập lệnh.