my.cnf меняет датадир, 2 дня и все равно не повезло - PullRequest
1 голос
/ 01 декабря 2010

Привет, я пытался это часами, этот форум - мое последнее средство после поиска сотен страниц.

ПРОБЛЕМА: извините за длину, но я подробно описываю то, что я пробовал

Я настроил MySQL и все работает нормально, теперь мне нужно изменить хранилище данных, чтобы указатьна моем внешнем HD.

В mac osx по умолчанию my.cnf отсутствует, поэтому я скопировал my-огромный.cnf из /usr/local/mysql-5.1.53-osx10.6-x86/support-files, теперь, если он делаетЛюбые шансы у меня также есть папка 'mysql' в локальной тоже.

когда я помещаю и переименовываю my-огромный.cnf в / etc
я переименовываю его в my.cnf, как указано в инструкции,
это работает как обычно, если я не добавляю поле datadir, которое выглядит следующим образом
datadir= /Volumes/Elements/database,
Я также скопировал свои старые данные в новое место, используя
sudo cp -R -p /var/lib/mysql /Volumes/Elements/database

Все работает нормально, если я не добавлю поле datadir = /Volumes/Elements/database в файл my.cnf, если я получаю сообщение об ошибке

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

my.cnf файл выглядит следующим образом

Macintosh-100:support-files seanf$ cd /etc 
Macintosh-100:etc seanf$ sudo nano my.cnf 
Password: 
Macintosh-100:etc seanf$ nano my.cnf 
Macintosh-100:etc seanf$ my.cnf > /Desktop/blah.txt 
-bash: /Desktop/blah.txt: No such file or directory 
Macintosh-100:etc seanf$ my.cnf < /Desktop/blah.txt 
-bash: /Desktop/blah.txt: No such file or directory 
Macintosh-100:etc seanf$ nano my.cnf 

GNU nano 2.0.6 Файл: my.cnf

# Example MySQL config file for very large systems. 
# 
# This is for a large system with memory of 1G-2G where the system runs mainly 
# MySQL. 
# 
# You can copy this file to 
# /etc/my.cnf to set global options, 
# mysql-data-dir/my.cnf to set server-specific options (in this 
# installation this directory is /usr/local/mysql/data) or 
# ~/.my.cnf to set user-specific options. 
# 
# In this file, you can use all long options that a program supports. 
# If you want to know which options a program supports, run the program 
# with the "--help" option. 

# The following options will be passed to all MySQL clients 
[client] 
#password = your_password 
port = 3306 
socket = /tmp/mysql.sock 

# Here follows entries for some specific programs 

# The MySQL server 
[mysqld]l 
datadir = /Volumes/Elements/database 
port = 3306 
socket = /tmp/mysql.sock 
skip-locking 
key_buffer_size = 384M 

и т.д ....

Я надеюсь, что кто-то может пролить свет на это, у меня назначенное задание и я потратил 2 дня, пытаясь заставить это работать на моем внешнем

Кроме того, даже когда MySQL работает, и я набираю MySQL, я получаю ошибки, если это проблема?

Macintosh-100:lib s$ mysqld 
101201 13:31:13 [Warning] '--skip-locking' is deprecated and will be removed in a future >release. Please use '--skip-external-locking' instead. 
101201 13:31:13 [Warning] Can't create test file /usr/local/mysql-5.1.53-osx10.6-x86/data>/Macintosh-100.lower-test 
101201 13:31:13 [Warning] Can't create test file /usr/local/mysql-5.1.53-osx10.6-x86/data>/Macintosh-100.lower-test 
mysqld: Can't change dir to '/usr/local/mysql-5.1.53-osx10.6-x86/data/' (Errcode: 13) 
101201 13:31:13 [ERROR] Aborting 

101201 13:31:13 [Note] mysqld: Shutdown complete 

Macintosh-100:lib s$ 

Спасибо за ваше время, я надеюсь, что эксперт может ответить на этот вопрос

Ответы [ 2 ]

0 голосов
/ 08 сентября 2016

Использование:

rsync -Pa /var/lib/mysql /Volumes/Elements/database

вместо:

cp -R -p /var/lib/mysql /Volumes/Elements/database

"rsync -a" может сохранять некоторые разрешения, важные для mysql.

0 голосов
/ 01 декабря 2010

Хотя я не играл со свойством datadir, но я изменил место хранения данных на внешний жесткий диск, подключив к нему местоположение по умолчанию следующим образом:

  • Резервное копирование вашего текущего каталога данных
  • Удалить все из вашего каталога данных
  • Установите его на свой внешний HD (mount /var/lib/mysql/data /dev/XXX)

Я сделал это на Ubuntu Server. При изменении конкретных каталогов InnoDB я заметил, что с правами нужно быть осторожнее (apparmord в случае с Ubuntu). Когда mysql не может выполнить некоторую операцию файловой системы, я нахожу его сообщения об ошибках очень вводящими в заблуждение. Иногда очень полезно изучить файл error.log (в моем случае /var/log/mysql/error.log).

Надеюсь, это поможет вам решить проблему как можно скорее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...