【问题标题】:After symbolic link: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)符号链接后:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
【发布时间】:2018-02-20 17:58:50
【问题描述】:

对于一个 vagrant box,我创建了一个引导脚本,使我的 mysql 数据持久化。它通过具有特权的配置者 shell 脚本运行。

基本上,脚本从 /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 进入 vagrant 并手动启动 mysql,它就可以工作。我不确定这里有什么问题。

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

【问题讨论】:

  • 我不会依赖 /vagrant 挂载您的数据目录。该界面不稳定且性能不佳。我所做的是使用vagrant plugin for persistent storage 并将MySQL 数据放在这个卷上。这样我就可以让 MySQL 数据在 vagrant destroy 和 recreate 中存活下来。

标签: mysql vagrant symlink


【解决方案1】:

正如 Bill Karwin 所说,我使用 persistent storage plugin 表示 vagrant,这正是我想要的。

【讨论】:

    猜你喜欢
    • 2014-10-16
    • 2020-08-11
    • 2013-10-06
    • 2021-03-31
    • 2021-05-04
    • 2023-03-20
    • 2018-05-15
    • 2017-05-03
    • 1970-01-01
    相关资源
    最近更新 更多