By default, MySQL's datadir is placed in the
/var/lib/mysql directory. However, if you are planning on
using MySQL tables to store a lot of data and your /var
partition is small, it might cause you problem at a later stage. In such
a scenario, it is better to move the MySQL's datadir to
another partition (like /home.
The steps are
Stop your mysql server before starting this operation
Create the directories that will be new datadir
chown the directory to the mysql:mysql
user
copy the files from the old datadir to the new
location. However, make sure that the files named
ib_arch_log_0000000000, ib_logfile0 etc. are not copied
to the newer location.
Make sure that the files and directories are owned by
mysql user
Make changes in the my.cnf to point the new
datadir.
Restart the MySQL database
You might need to do varying degree of troubleshooting to get the server
working if there is some problem
Create a new database and verify that the files for this database
are getting created in the new datadir
After the server is running for a few days properly, get rid of
the old data.
Sleep
I tested these steps on MySQL 4.0.24 and all my tables were MyISAM type.
I was watching the recorded episodes of Simpsons today. In one of the
scenes, the children of Springfield decide that they are going to spill
out all the secrets of the adults. So they start to plan how they can
do it.
Lisa : Let us publish this information on the Internet Bart : No, we have to get to the people whose opinion really matter
A question that has been on my mind for a long time was put in by
my friend Mary (he is the sysadmin at Sarai). Let me give a bit of the background. When I was in
Delhi, a bunch of us fellow-geeks used to meet almost twice a month to
talk about our hacking projects, our current work (all of us were
happily free of NDAs), have a good dinner and generally get into debates about
topics that would be considered a taboo (or inappropriate by most
people). Once when we were joking about how prostitution is legal in
Thailand and what procedure would the government be using to collect the
taxes (I mean, how will they cross check the receipts), that Mary
popped the question "Why do you think prostitution is wrong ?" . My
first reaction was "It is not the right thing to do" - however, I
realized that pushing my judgement of what is right and what is wrong
on someone else is not the correct thing to do. I have been thinking
of why I consider prostitution to be wrong - it is a profession - a
service is provided and a price is paid for it.
This question again came to the front of my mind when I read this
blog post by Joshua Newton. He writes about the An
autobiography of a sex worker by Nalini Jameela. He
posts the following quote from the book
Some see brothels as a space for sexual perverts.
They are wrong. Why do people of all walks of life come to us?
Parents prevent our sexual desires in the beginning. Then teachers in
schools. Then moralists in churches, mosques, and temples slap
rules. When you grow up, police and courts take up the role. They
spread the rule one man for one woman. Yet people seek out prostitutes
all over the world in all ages. What does it prove?
So are you against moral structures?
No. Men dictate the morality of this age. They use wives or sex
workers to their ends. We dream of a new dawn of morality. Sexuality
like food and shelter is a terrain of human tastes. It is still to be
developed into a plateau of endless tastes and forms. Morality should
not suppress. It should be liberating. When sex work turns into one
among many human service sectors, you will stop suppressing yourself
and others.
I have not read the book but this book is definitely on my to-read
book
I was reading through the mails in the php-general mailing list and
came across this mail by Rasmus about AJAX
I find a lot of this AJAX stuff a bit of a hype. Lots of people have
been using similar things long before it became "AJAX". And it really
isn't as complicated as a lot of people make it out to be. Here is a
simple example from one of my apps. First the Javascript:
function createRequestObject() {
var ro;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
ro = new ActiveXObject("Microsoft.XMLHTTP");
}else{
ro = new XMLHttpRequest();
}
return ro;
}
var http = createRequestObject();
function sndReq(action) {
http.open('get', 'rpc.php?action='+action);
http.onreadystatechange = handleResponse;
http.send(null);
}
function handleResponse() {
if(http.readyState == 4){
var response = http.responseText;
var update = new Array();
if(response.indexOf('|' != -1)) {
update = response.split('|');
document.getElementById(update[0]).innerHTML = update[1];
}
}
}
This creates a request object along with a send request and handle
response function. So to actually use it, you could include this js in
your page. Then to make one of these backend requests you would tie it
to something. Like an onclick event or a straight href like this:
<a href="javascript:sndReq('foo')">[foo]</a>
That means that when someone clicks on that link what actually happens
is that a backend request to rpc.php?action=foo will be sent.
In rpc.php you might have something like this:
switch($_REQUEST['action']) {
case 'foo':
/ do something /
echo "foo|foo done";
break;
...
}
Now, look at handleResponse. It parses the "foo|foo done" string and
splits it on the '|' and uses whatever is before the '|' as the dom
element id in your page and the part after as the new innerHTML of that
element. That means if you have a div tag like this in your page:
<div id="foo">
</div>
Once you click on that link, that will dynamically be changed to:
<div id="foo">
foo done
</div>
That's all there is to it. Everything else is just building on top of
this. Replacing my simple response "id|text" syntax with a richer XML
format and makine the request much more complicated as well. Before you
blindly install large "AJAX" libraries, have a go at rolling your own
functionality so you know exactly how it works and you only make it as
complicated as you need. Often you don't need much more than what I
have shown here.
Expanding this approach a bit to send multiple parameters in the
request, for example, would be really simple. Something like:
function sndReqArg(action,arg) {
http.open('get', 'rpc.php?action='+action+'&arg='+arg);
http.onreadystatechange = handleResponse;
http.send(null);
}
And your handleResponse can easily be expanded to do much more
interesting things than just replacing the contents of a div.
-Rasmus