对于一个无聊的盒子,我创建了一个引导脚本,使我的mysql数据持久化。它通过具有特权的预配器外壳脚本运行。
基本上,脚本从/ var / lib / mysql-> / vagrant / mysqldata创建符号
/ vagrant文件夹已安装到主机系统,因此在创建此符号链接后,将重新显示mysql中的所有数据
if [ ! -L /var/lib/mysql ] ; then
sudo service mysql stop
sudo mv /var/lib/mysql /var/lib/mysql-old
sudo ln -s /vagrant/mysqldata /var/lib/mysql
sudo echo "alias /var/lib/mysql/ -> /vagrant/mysqldata/," >> /etc/apparmor.d/tunables/alias
sudo service apparmor reload
sudo service mysql start
fi
问题是,运行此脚本后,我运行
vagrant reload --provision
总是失败,并显示以下错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
但是,如果我将ssh变成无业游民并手动启动mysql,则它可以工作。我不确定这里是什么问题。
正如您在脚本中看到的那样,它将旧的mysql数据文件夹重命名为mysql-old,我将其设置为可以再次使用。因此,它与该符号链接有关。
最佳答案
正如Bill Karwin所说,我使用persistent storage plugin来做无所适从的事情。
关于mysql - 符号链接(symbolic link)后:ERROR 2002(HY000):无法通过套接字'/tmp/mysql.sock'(2)连接到本地MySQL服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48891487/