CentOS6 更改MySQL默认数据库路径,关键在SELINUX

摘要:
在CentOS中修改MySQL默认数据库路径,网上介绍很多,只需要修改/etc/my.cnf和/etc/init.d/mysqld,将新目录所有者改为mysql:mysql,很简单。CentOS使用yuminstallmysql-server后,默认数据库目录是/var/lib/mysql,假如我们要把数据库目录改到/opt/mysql,下面是全过程。有两种办法:1)关闭SELINUXSELINUX默认是启用的,可以用#setenforce0关闭SELINUX。

在CentOS中修改MySQL默认数据库路径,网上介绍很多,只需要修改 /etc/my.cnf 和 /etc/init.d/mysqld,将新目录所有者改为mysql:mysql,很简单。但是改后重启mysqld却总是失败,/var/log/mysqld.log 提示mysqld没有权限访问目录,如下:
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
想来想去想起了 SELINUX,呵呵,搜了一下找到了方法,其实就是一两条指令的事儿。
CentOS使用 yum install mysql-server后,默认数据库目录是 /var/lib/mysql,假如我们要把数据库目录改到 /opt/mysql,下面是全过程。
1. 停止 mysqld
# service mysqld stop
2. 修改配置文件
# vi /etc/my.cnf
[mysqld]
# datadir=/var/lib/mysql
datadir=/opt/mysql

# vi /etc/init.d/mysqld
# get_mysql_option mysqld datadir "/var/lib/mysql"
get_mysql_option mysqld datadir "/opt/mysql"
3. 复制数据库文件到新的目录并更改所有者
# cp -r /var/lib/mysql /opt/
# chmod -R mysql:mysql /opt/mysql
4. 这时候如果运行 # service mysqld start 不会成功的,因为要对付SELINUX。有两种办法:
1)关闭SELINUX
SELINUX默认是启用的,可以用 # setenforce 0 关闭 SELINUX(启用SELINUX:# setenforce 1)。
把指令加到系统默认启动里面(“>>” 表示追加到文件中):
# echo "setenforce 0" >> /etc/rc.local
2)启用SELINUX
我们还是希望SELINUX提供系统安全性,那么就要修改目录的SELINUX上下文:
# chcon -R -t mysqld_db_t /opt/mysql

然后再启动 mysqld 就可以了。

原数据目录(/var/lib/mysql)中只需要保留 mysql.sock,剩下的文件在确认数据库完全正常后就可以删除了。
顺便记录一下SELINUX的其他参数:
# chcon -R -h -t httpd_sys_content_t /www/web/
# chcon -R -t samba_share_t /path
(参考 http://topic.csdn.net/u/20100419/16/a1929b50-de24-4346-87ee-659a65668960.html ,在#10)

免责声明:文章转载自《CentOS6 更改MySQL默认数据库路径,关键在SELINUX》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇gcc/g++编译HAProxy安装配置详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

pb中数据窗口函数小结(转)

一、连接数据库 连接数据库也就是指定事务对象。PowerBuilder提供了两个函数:SetTrans()和SetTransObject()。语法格式:dw_control.SetTrans(TransactionObject)dw_control.SetTransObject(TransactionObject)其中,dw_control是所使用的数据窗...

SpringBoot-数据访问

SpringData是Spring提供的一个用于简化数据库访问、支持云服务的开源框架。它是一个伞形项目,包含了大量关系型数据库及非关系型数据库的数据访问解决方案,其设计目的是使我们可以快速且简单地使用各种数据访问技术。Spring Boot默认采用整合SpringData的方式统一处理数据访问层,通过添加大量自动配置,引入各种数据访问模板xxxTempla...

库会因为权限问题无法打开——selinux开启严格模式

第三方库会因为提高selinux权限等级而无法打开,若使用setenforce 0可以打开则可确认。需要增加相应权限。修改te权限。 查看SELinux状态: 1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态 SELinux status: enabled 2、getenforce ##也...

五:SQL语句中的数据类型

一:MySQL数据类型   MySQL中定义数据字段的类型对你数据库的优化是非常重要的   MySQL支持多种数据类型,大致可以分为三类:数值 日期/时间和字符串 二、数值类型(12)   2.1、整数类型(6)     一张图就能解释清楚了:              INTEGER同INT。    2.2、定点数(2)            DECIM...

数据库性能测试方案示例

前言 : 究竟怎样进行数据库性能测试,数据库性能测试需要做些什么?大多数产品线的RD和QA也比较迷茫,经常过来咨询。 一般说来,做数据库性能测试需要如下几个步骤: 1:明确测试目的 2:设计测试模型 (即压力模型) 3:准备测试集群环境 4:准备压力测试工具或者编写压力测试脚本 5:明确性能指标并加监控 6:根据2设计的测试模型准备测试数据 7:测试执行...

1045-access denied for user 'root'@

mysql数据库连接时报错:1045-access denied for user 'root'@...... 解决步骤: 1.停止MYSQL服务(net stop mysql57) 2.在CMD命令行窗口,进入MYSQL安装的bin目录 比如“C:Program FilesMySQLMySQL Server 5.7in” 3.继续输入命令为:"mysql...