2010-12-01 16 views
1

Salut j'ai essayé cela pendant des heures et des heures, ce forum est mon dernier recours sfter googling des centaines de pages.my.cnf changer datadir, 2 jours et toujours pas de chance

PROBLÈME: Désolé pour la longueur mais je suis fournit en détail de ce que j'ai essayé

J'ai mis en place mysql et son i maintenant besoin de bien, travailler pour changer le stockage de données pour pointer sur mon externe HD. Avec mac osx, il n'y a pas my.cnf par défaut, donc j'ai copié my-huge.cnf à partir de /usr/local/mysql-5.1.53-osx10.6-x86/support-files, maintenant s'il fait un J'ai aussi un dossier 'mysql' en local aussi.

quand je place et renomme ma-huge.cnf dans/etc
i retitré à my.cnf comme instruit,
il fonctionne comme normal si je n'ajouter un champ datadir qui ressemble à ce
datadir= /Volumes/Elements/database,
j'ai copié mes anciennes données à mon nouvel emplacement en utilisant
sudo cp -R -p /var/lib/mysql /Volumes/Elements/database

Tout workds bien à moins que j'ajouter le champ datadir = /Volumes/Elements/database au fichier my.cnf, si je puis-je obtenir l'erreur

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

fichier my.cnf se présente comme suit

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 fichier: 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 

etc ....

J'espère que quelqu'un peut faire la lumière sur ce sujet, j'ai une tâche à accomplir et j'ai passé deux jours à essayer de le faire y external

Même lorsque mysql fonctionne et que je tape mysqld, j'obtiens des erreurs si c'est un problème?

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$ 

Merci pour votre temps, je l'espère un expert peut répondre à cette

+0

Votre nouvelle datadir devrait être possédée et accessible en écriture par MySQL – shantanuo

+0

J'ai compris que l'erreur> ERROR 2002 (HY000): Impossible de se connecter au serveur MySQL local via le socket dépend du fait que le serveur mysql ne fonctionne pas, [le solution peut être trouvée ici] (http://softwareinstallationsmysql.blogspot.co.uk/2013/06/mysql-uroot-error-2002-hy000-cant.html). –

Répondre

0

Bien que je ne l'ai pas joué avec datadir bien mais j'ai changé l'emplacement de stockage des données sur le disque dur externe par emplacement de montage par défaut comme suit:

  • Sauvegardez votre répertoire de données actuel
  • Supprimer tout à partir de votre répertoire de données
  • Mont à votre HD externe (mount /var/lib/mysql/data /dev/XXX)

Je l'ai fait chez Ubuntu Server. Lors de la modification de répertoires spécifiques à InnoDB, j'ai remarqué qu'il fallait faire attention aux droits (apparmord dans le cas d'ubuntu). Lorsque mysql ne peut pas effectuer une opération du système de fichiers, je trouve ses messages d'erreur très trompeurs. Parfois, il est vraiment utile d'étudier son error.log (/var/log/mysql/error.log dans mon cas).

Espérons que cela vous aidera à résoudre votre problème dès que possible.

+0

le problème était avec un réglage d'autorisation étrange à la fin – user524156

0

Utilisation:

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

au lieu de:

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

"rsync -a" peut garder certaines autorisations importantes pour MySQL.