符号链接后:ERROR 2002(HY000):无法通过socket' /tmp/mysql.sock&#39连接到本地MySQL服务器; (2)

时间:2018-02-20 17:58:51

标签: mysql vagrant symlink

对于一个流浪盒我创建了一个使我的mysql数据持久的引导脚本。它运行具有特权的配置shell脚本。

基本上,脚本从/ var / lib / mysql创建符号 - > /流浪者/ 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到vagrant并手动启动mysql,它的工作原理。我不确定这里的问题是什么。

正如您在脚本中看到的那样,它将旧的mysql数据文件夹重命名为mysql-old,我将其设置回来再次运行。所以它与该符号链接有关。

1 个答案:

答案 0 :(得分:0)

正如Bill Karwin评论的那样,我使用了persistent storage plugin来实现我想要的流浪者。