第一步:停止MySQL服务
使用命令service mysqld stop 停止mysql
查看mysql数据库的默认路径:/var/lib/mysql
使用cp -afir  /var/lib/mysql/*   /usr/local/mysql
这里的a f i r参数具体指什么请查看cp参数如下:

       -a      该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。 
        -d      拷贝时保留链接。 
        -f      删除已经存在的目标文件而不提示。 
        -i      和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。 
        -p      此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。 
        -r      若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
 


第二步:修改原配置文件定义的路径及socket
更改my.cnf
使用命令:vim /etc/my.cnf
把其中的datadir更改为新的路径
datadir=/usr/local/mysql
为保证MySQL能够正常,需要指明mysql.sock文件的产生位置。
#socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
socket  = /usr/local/mysql/mysql.sock (加上此行)

第三步:修改MySQL启动脚本参数

修改MySQL启动脚本/etc/init.d/mysqld,
把其中datadir=/var/lib/mysql一行改成你现在的实际存放路径/usr/local/mysql
[root@test1 etc]# vi /etc/init.d/mysqld
#datadir=/var/lib/mysql(注释此行)
datadir=/usr/local/mysql (加上此行)

第四步:修改PHP配置对socket的支持
修改etc/php.ini添加mysql.default_socket路径
mysql.default_socket = /usr/local/mysql/mysql.sock

第五步:映射sock的软连接

ln -s  /usr/local/mysql/mysql.sock  /var/lib/mysql/mysql.sock
给mysql.sock建立一个软链接,否则会提示找不到/var/lib/mysql/mysql.sock

第六步:重启mysqld
service mysqld restart