开发者

my.cnf changing datadir, 2days and still no luck

开发者 https://www.devze.com 2023-01-27 15:26 出处:网络
Hi i have been trying this for hours upon hours, this forum is my last resort sfter googling hundreds of pages.

Hi i have been trying this for hours upon hours, this forum is my last resort sfter googling hundreds of pages.

PROBLEM: Sorry for the length but i am supplying in detail of what i have tried

I have set up mysql and its working fine, i now need to change the data-storage to point at my External HD.

With mac osx there is no default my.cnf so i copied my-huge.cnf from /usr/local/mysql-5.1.53-osx10.6-x86/support-files, now if it makes any odds i also have a 'mysql' folder in local also.

when i place and rename my-huge.cnf into /etc

i renamed it to my.cnf like instructed,

it works as normal if i dont add a datadir field which looks like this

datadir= /Volumes/Elements/database,

i have also copied my old data to my new location using

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

Everything workds fine unless i add the field datadir = /Volumes/Elements/database to the my.cnf file, if i do i get the error

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

my.cnf file looks like the following

Macintosh-100:suppo开发者_运维技巧rt-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 File: 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....

I hope someone can shed light on this, i have an assignment due and have spent 2 days trying to get this working on my external

Also even when mysql is working and i type mysqld i get errors if this is an issue?

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$ 

Thanks for your time i hope an expert can answer this


Though I haven't played with datadir property but I've changed data storage location to the external HD by mounting default location to it as follows:

  • Backup your current data directory
  • Delete everything from your data directory
  • Mount it to your external HD (mount /var/lib/mysql/data /dev/XXX)

I've done it at Ubuntu Server. When changing InnoDB specific directories I've noticed that one have to be careful with rights (apparmord in case of ubuntu). When mysql cannot perform some filesystem operation I find its error messages very misleading. Sometimes it is really helpful to study it's error.log (/var/log/mysql/error.log in my case).

Hope this helps you to resolve your issue ASAP.


Use:

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

instead of:

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

"rsync -a" can keep some permissions important for mysql.

0

精彩评论

暂无评论...
验证码 换一张
取 消