第一步:停止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
[[email protected] 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