CentOS 更改MySQL数据库目录位置
由于MYSQL的数据库太大,默认安装的“/var”盘已经再也无法容纳新增加的数据,没有办法,只能想办法转移数据的目录。
以下是将MYSQL数据库默认安装目录从“/var/lig/mysql”目录转移到“/home/mysql_data/”目录具体操作流程:
通过用”YUM”安装“MYSQL”数据库,安装目录为默认路径:”/var/lib/mysql”
启动“MYSQL”数据库
[root@localhost ~]#service mysqld start
设置“MYSQL”数据库登录密码
[root@localhost ~]#mysqladmin –uroot password 123
登录测试“MYSQL”可否正常登录
[root@localhost ~]#mysql –uroot –p123
创建所需的测试数据库
Mysql>create databases ceshi;
Mysql>show databases;
进入测试数据库,创建表
Mysql>use ceshi;
Mysql>create table mytable (name varchar(20),sex char(1),birth date,home varchar(30));
Mysql>show tables;
向表里增加数据
Mysql>insert into mytable values(’zhangsan’,’m’,’1977-05-16’,’china’);
Mysql>insert into mytable values(’lisi’,’m’,’1988-09-25’,’china’);
Mysql>select * from mytable;
到此!开始做“MYSQL”数据库目录位置的迁移
1. 关闭“MYSQL”
[root@localhost ~]#service mysqld stop
2. 创建迁移后数据库所要放置的目录
[root@localhost ~]#mkdir /home/mysql_data
3. 转移数据,把默认安装目录【/var/lib/mysql】拷贝的新创建的数据目录【/home/mysql_data】下
[root@localhost ~]#cd /var/lib
[root@localhost lib]#cp -arp mysql /home/mysql_data
【注:-a这个参数保持原因文件的权限;-r连同目录一块复制】
[root@localhost ~]#cd /home/mysql_data/mysql
4. 修改配置文件,一共有三处:
修改第一处文件:修改之前先备份原有文件
[root@localhost ~]#cp /etc/my.cnf /etc/my.cnfbak
修改数据存放目录:
原来存放路径:【datadir=/var/lib/mysql】
è
现在存放路径:【 datadir=/home/mysql_data/mysql】
原来存放路径:【socket=/var/lib/mysql/mysql.sock】
è
现在存放路径:【socket=/home/mysql_data/mysql/mysql.sock】
【注:为了安全,可以将原来的注释掉,重新加入一行。】
[root@localhost ~]#vim /etc/my.cnf
5. 修改第二个文件:修改之前先备份原有文件
[root@localhost ~]#cp /etc/init.d/mysqld /etc/init.d/mysqldbak
修改数据目录:
原来存放路径【/var/lib/mysql】
è
现在存放路径【/home/mysql_data/mysql】
【注:准确的位置是/etc/rc.d/init.d/mysqld,由于这里这里有一个/etc/init.d到/etc/rc.d/init.d的映射,】
[root@localhost ~]#vim /etc/init.d/mysqld
6. 修改第三处文件:修改之前先备份原有文件
[root@localhost ~]#cp /usr/bin/mysqld_safe /usr/bin/mysqld_safebak
修改数据目录:
原来存放路径【/var/lib/mysql】
è
现在存放路径【/home/mysql_data/mysql】
[root@localhost ~]#vim /usr/bin/mysqld_safe
7. 启动“MYSQL”服务
[root@localhost ~]#service mysqld start
8. 启动“MYSQL”服务后需要建立一个mysql.sock的链接:
Ln -s /home/mysql_data/mysql/mysql.sock /var/lib/mysql/mysql.sock
9. 查看进程“MYSQL”运行的是否为修改后的路径
[root@localhost ~]#ps –ef | grep mysql
测试可否正常登录数据库
[root@localhost ~]#mysql -uroot -p
10. 测试向表中插入数据:
插入数据前“mytable”表中的数据
Mysql>select * from mytable;
向“mytable”表中插入一条新数据
Mysql>insert into mytable values (’wangwu’,’m’,’1985-09-15’,’china’);
11. 最后修改下数据库的权限
[root@localhost ~]# chown -R mysql:mysql /home/data/mysql/
注: 改变数据库的归属为mysql
[root@localhost ~]# chmod 700 /home/data/mysql/test/
注: 改变数据库目录属性为700
[root@localhost ~]# chmod 660 /home/data/mysql/test/*
注: 改变数据库中数据的属性为660