在工作中,我们会遇到需要更改数据库存放位置的时候,例如:原数据库所在磁盘空间不足、等。
编译安装的 Mysql 
[root@localhost ~]# service mysqld status        # 首先看到 mysql 为运行状态
SUCCESS! MySQL running (3794)
[root@localhost ~]# ps aux | grep mysqld | grep -v grep    
# 这里可以看到原来 datadir 的位置,还有其他的参数路径
root      3543  0.0  0.1  11304  1504 pts/0    S    19:32   0:00 
/bin/sh /usr/local/mysql/bin/mysqld_safe 
–datadir=/usr/local/mysql/data –pid-file=/usr/local/mysql/data/localhost.pid
mysql     3794  0.0  4.3 647376 43936 pts/0    Sl   19:32   0:00 
/usr/local/mysql/bin/mysqld 
–basedir=/usr/local/mysql –datadir=/usr/local/mysql/data 
–plugin-dir=/usr/local/mysql/lib/plugin –user=mysql 
–log-error=/usr/local/mysql/data/localhost.err –pid-file=/usr/local/mysql/data/localhost.pid 
–socket=/tmp/mysql.sock –port=3306
[root@localhost ~]# service mysqld stop                              # 好,我们先要停止 mysql
Shutting down MySQL.. SUCCESS!
[root@localhost ~]# ps aux | grep mysqld | grep -v grep      # 已经检测不到进程
[root@localhost ~]# mkdir /data                                          # 创建即将要更改的位置
[root@localhost ~]# cp -r /usr/local/mysql/data/* /data/    # 将原 data 目录下的所有内容复制到新的路径下
[root@localhost ~]# chown -R mysql /data/        # 给目录属主
[root@localhost ~]# vim /etc/my.cnf                  # 编辑配置文件
[mysqld]
datadir = /data
                                                  # 加入数据库存放位置
[root@localhost ~]# service mysqld start           # 然后启动数据库
Starting MySQL.. SUCCESS!
[root@localhost ~]# ps aux | grep mysqld | grep -v grep      # 可以看到 –datadir=/data 这正是新的位置
root      3890  0.5  0.1  11304  1504 pts/0    S    19:52   0:00 
/bin/sh /usr/local/mysql/bin/mysqld_safe –datadir=/data –pid-file=/data/localhost.pid
mysql     4153  2.5  4.0 647376 41824 pts/0    Sl   19:52   0:00 
/usr/local/mysql/bin/mysqld 
–basedir=/usr/local/mysql 
–datadir=/data –plugin-dir=/usr/local/mysql/lib/plugin –user=mysql –log-error=/data/localhost.err 
–pid-file=/data/localhost.pid –socket=/tmp/mysql.sock –port=3306