После символической ссылки: ОШИБКА 2002 (HY000): Не удается подключиться к локальному серверу MySQL через сокет '/tmp/mysql.sock' (2)

0

Для бродячего я создал сценарий начальной загрузки, который делает мои данные 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, и я устанавливаю, что она снова работает. Таким образом, это имеет какое-то отношение к этой символической ссылке.

  • 0
    Я бы не стал полагаться на / vagrant mount для вашего каталога данных. Этот интерфейс ненадежен и имеет низкую производительность. Вместо этого я использовал плагин vagrant для постоянного хранения и поместил данные MySQL в этот том. Таким образом, я смогу сделать так, чтобы данные MySQL выживали, а потом разрушались.
Теги:
vagrant
symlink

1 ответ

0
Лучший ответ

Как прокомментировал Билл Карвин, я использовал постоянный модуль хранения для бродяг, который делает именно то, что я хочу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню