更改mysql数据存储路径
1.检查mysql数据库存放目录
mysql -u root -prootadmin
show variables like '%dir%';
quit;
(查看datadir 那一行所指的路径)
2.停止mysql服务
service mysqld stop
3.创建新的数据库存放目录
mkdir /data/mysql
4.移动/复制之前存放数据库目录文件,到新的数据库存放目录位置
cp -R /usr/local/mysql/data/* /data/mysql/ #或mv /usr/local/mysql/data/* /data/mysql
5.修改mysql数据库目录权限以及配置文件
chown mysql:mysql -R /data/mysql/
vim /etc/my.cnf
datadir=/data/mysql (制定为新的数据存放目录)
vim /etc/init.d/mysqld
datadir=/data/mysql
socket=/data/mysql/mysql.sock
6.启动数据库服务
service mysqld start
说明:根据以上的简单6步操作,已经成功的数据库目录更换路径了。
备注:以上系统为CentOS 6.2 x64 mysql-5.5.13
//======================================================================================================================================
//======================================================================================================================================
如果上述不行,请参考如下链接:
MYSQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:
1.home目录下建立data目录
|
1
2
|
cd /homemkdir data |
2.把MySQL服务进程停掉:
|
1
|
mysqladmin -u root -p shutdown |
3.把/var/lib/mysql整个目录移到/home/data
|
1
|
mv /var/lib/mysql /home/data/ |
这样就把MySQL的数据文件移动到了/home/data/mysql下
4.找到my.cnf配置文件
如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:
|
1
|
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf |
5.编辑MySQL的配置文件/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。操作如下:
vi my.cnf (用vi工具编辑my.cnf文件,找到下列数据修改之)
|
1
2
3
4
|
# The MySQL server[mysqld] port = 3306#socket = /var/lib/mysql/mysql.socksocket = /home/data/mysql/mysql.sock (加上此行) |
6.修改MySQL启动脚本/etc/init.d/mysql
最后,需要修改MySQL启动脚本/etc/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。
vi /etc/init.d/mysql
#datadir=/var/lib/mysql(注释此行)
datadir=/home/data/mysql (加上此行)
如果是CentOS还要改 /usr/bin/mysqld_safe 相关文件位置;
最后 做一个mysql.sock 链接:
in -s /home/data/mysql/mysql.sock /var/lib/mysql/mysql.sock
7.重新启动MySQL服务
/etc/init.d/mysqld start
或用reboot命令重启Linux
如果工作正常移动就成功了,否则对照前面的7步再检查一下。还要注意目录的属主和权限。
复制内容到剪贴板
代码:
[root@sample ~]# chown -R mysql:mysql /home/data/mysql/ ← 改变数据库的归属为mysql
[root@sample ~]# chmod 700 /home/data/mysql/test/ ← 改变数据库目录属性为700
[root@sample ~]# chmod 660 /home/data/mysql/test/* ← 改变数据库中数据的属性为660
错误解决方案:
1.在CentOS上,如果mysql是通过yum安装的,那么可能使用上面的方法不能完全凑效。
原因:mysql的配置文件有多处,除了更改/etc/my.cnf文件之外,还需要更改/usr/lib64/mysql/mysql_config
这个文件里面有一行“ldata='/var/lib/mysql'”和"socket=/var/lib/mysql/mysql.sock",这里也需要改掉
2.另外,还有权限问题,查看/var/log/mysqld.log,发现Can't create test file /xxx/mysql/centos5.lower-test
这里是因为没有权限创建或读取文件。
解决办法就是使用setenforce 0 这个命令,让系统关闭权限校验,然后再运行命令 service mysqld start 发现OK了。
如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0
另外一个办法是restorecon -FRv /home/data/mysql,或者chcon -R -t mysqld_db_t /home/data/mysql
更改mysql数据存储路径的更多相关文章
- [转载]ubuntu下如何更改mysql数据存放路径
http://www.gaojinbo.com/ubuntu%E4%B8%8B%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9mysql%E6%95%B0%E6%8D%AE%E ...
- linux 更改mysql 数据存储目录
https://www.cnblogs.com/hellangels333/p/8376177.html 参考位博主的文章,稍做改动 1.检查mysql数据库存放目录 mysql -u root - ...
- windows mysql数据存储路径更改
背景:之前服务器磁盘很小,随着数据量的不断增加,磁盘不够,所以新申请了更大的磁盘,然后需要将旧路径下的数据迁移到新磁盘上. 1.任务管理器-打开服务,找到mysql的启动项,停止服务,属性查看可执行文 ...
- 【转载】变更MySql数据存储路径的方法
1.在mysql安装目录下找到my.ini文件,更改#Path to the database root datadir="希望存放数据的地址" 2.将默认存放路径(一般为&quo ...
- linux下更改MySQL数据库存储路径
参考地址:1.https://blog.csdn.net/ArnoBM/article/details/83008212 2.http://www.cnblogs.com/lyongde/p/3725 ...
- Ubuntu 16.04 装机后如何永久更改ulimit和修改MySQL的存储路径datadir
Ubuntu 16.04 装机后的配置要点: 1. 网络的配置 2. 更改源列表 3. 永久更改ulimit ulimit限制着程序打开文件的数目,默认情况下为1024,作为服务器使用时,这个数字往往 ...
- postgresql pgsql最新版安装指南及数据存储路径更改及主从配置
postgresql pgsql最新版安装指南及数据存储路径更改及主从配置 安装指南 首先在apt的list添加你当前系统版本对应的apt列表 目前官网有16.04,14.04,12.04 分别对应下 ...
- 修改mysql数据存储的地址
修改mysql数据存储的地址 修改步骤如下 1,修改前为默认路径/var/lib/mysql/,计划修改为/data/mysql/data mysql> show variables like ...
- centos 7.1系统更改Mariadb数据存储位置步骤分享
一.首先确保你要更改Mariadb数据存储的位置的空间够大 现在已将Mariadb存储位置更改到/opt/目录下 1.然后将Mariadb服务stop:systemctl stop mariadb 2 ...
随机推荐
- 【转】SQL SERVER 2005/2008 中关于架构的理解
在一次的实际工作中碰到以下情况,在 SQL SERVER 2008中,新建了一个新用户去访问几张由其他用户创建的表,但是无法进行查询,提示“对象名'CustomEntry' 无效.”.当带上了架构名称 ...
- Linux安装AUTOCONF和AUTOMAKE产生的程序的一般步骤
概述: 在Linux下安装一个应用程序时, 一般先运行脚本configure, 然后用make来编译源程序, 在运行make install, 最后运行make clean删除一些临时文件. 相关点的 ...
- 【angular5项目积累总结】panel组件
view code panel.component.css :host { display:flex; min-width:300px } panel.component.html <heade ...
- [转]emailjs-smtp-client
本文转自:https://github.com/emailjs/emailjs-smtp-client/blob/master/README.md SMTP Client SMTP Client al ...
- TabControl 选项卡控件
TabControl 控件是由System.Windows.Forms.TabControl类提供的,作用就是讲相关的组件组合到一系列选项卡页面上. MulitiLine 属性用来设置是否显示多行 ...
- 【12】FtpWebRequest上传下载
下载文件 /// <summary> /// 下载文件 /// </summary> /// <param name="filename">&l ...
- spring-cloud-sleuth简单使用
快速开始 一.导入依赖 <!--链路追踪 start--> <dependency> <groupId>org.springframework.cloud</ ...
- python学习之老男孩python全栈第九期_day019作业
# 计算时间差 import time start_time = time.mktime(time.strptime('2017-09-11 08:30:00','%Y-%m-%d %H:%M:%S' ...
- sql: postgreSQL sql script
SELECT * from pg_class c,pg_attribute a,pg_type t where c.relname='BookKindList' and a.attnum>0 a ...
- 解决Cannot read property 'style' of null中样式问题
<script type="text/javascript"> function updateTime(){ var timeNow = new Date(); var ...