关于MySQL默认的路径修改相关问题

mysql数据库有两个重要的路径参数,--basedir 和--datadir。

--basedir :指的是 mysql数据库 默认的安装的路径 。

--datadir:指的是安装好了数据库之后,mysql 数据库的数据文件存放的路径,如库、表、索引相关等文件。

如下图:


cat /etc/init.d/mysql :


通过这个文件知道,数据库启动的时候默认找配置文件的规则。


处于对磁盘空间控制或者路径规划等各种原因,可能会或者需要将数据库路径进行修改。

这个时候,可以在my.cnf文件里[mysqld]的标签里指定datadir,当然,指定这个文件之后,必须要把数据库相关的数据文件都搬到指定路径的,否则数据库无法启动。

1、还是要先关闭selinux,减少排障干扰。

service iptables stop

chkconfig iptables off

2、创建目标目录

mkdir -p /var/local/mysql-cluster/data

递归修改属组和属主;
chown -R mysql:mysql /var/local/mysql-cluster

3、修改配置文件

添加指定路径

 

4、迁移数据

(移动数据之前做好备份)

mv  /var/lib/mysql/var/lib/mysql_bak

mv  /var/lib/mysql  /var/local/mysql-cluster/data


第二种方法:

mysql官网提供的方式:perl脚本;文件名:mysql_install_db。

使用这个脚本来初始化数据库,生成最开始安装mysql的时候默认路径会生成的那些库、表等相关的文件。

(其原理与把默认路径的源数据搬到指定路径差不多,只不过不是搬过去,是直接在指定的新路径生成一系列数据。)

1.创建你需要的数据存放路径

mkdir -p /var/local/mysql-cluster/data

递归修改属组和属主;
chown -R mysql:mysql /var/local/mysql-cluster

2.原来的数据可以换个名字备份起来

mv  /var/lib/mysql /var/lib/mysql_bak

3.修改/etc/my.cnf配置文件

如:

[client]
character-set-server = utf8
port    = 3308
socket  = /tmp/mysql_3308.sock

[mysqld]
user    = mysql
port    = 3308
socket  = /tmp/mysql_3308.sock
basedir = /usr/local/mysql
datadir =  /var/local/mysql-cluster/data
log-error = //var/local/mysql-cluster/mysql_error.log

……

4.  确保配置文件无误

运行下面命令进行数据库的初始化:
#/usr/local/mysql/bin/mysql_install_db  --defaults-file=/etc/my.cnf   --datadir= /var/local/mysql-cluster/data

如果有报错,则按照报错的提示查看报错日志,一般情况下都是my.cnf配置文件的问题。

5.启动新mysql
mysql服务
#/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf 
检查是否启动
#ps aux|grep mysql
如果有3308字样说明已经启动成功
可将启动命令加入/etc/rc.local随服务器启动。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值