mysql数据库存储路径迁移(更改mysql数据库存储位置)

发布时间:2022-11-10

本文目录一览:

  1. Windows下如何更改MySQL数据库的存储位置
  2. [win10 MySQL更换储存路径](#win10 MySQL更换储存路径)
  3. [MySQL 数据文件迁移至新硬盘](#MySQL 数据文件迁移至新硬盘)
  4. linux环境下通过软链接变更mysql数据存储路径

Windows下如何更改MySQL数据库的存储位置

  1. 在mysql安装完成后,要修改数据库存储的位置,比如从安装目录下的E:\Program Files (x86)\MySQL\data文件夹转移到D:\mydata文件夹。
  2. 在D:\下新建mydata文件夹
  3. cmd进入dos窗口,输入net stop mysql停止MySQL服务,将C:\ProgramData\MySQL\MySQL Server 5.5\data(其中ProgramData为隐藏文件夹)下的文件夹和文件一起拷贝到D:\mydata文件夹下
  4. 在安装目录下找到my.ini文件,找到:
    #Path to the database root
    datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
    
    将datadir的值更改为datadir="D:/mydata/"
  5. 保存后,cmd进入dos窗口,输入net start mysql重新启动mySQL服务即可。

win10 MySQL更换储存路径

近几天在抓Wiki的数据,爬虫没控制好导致数据量过大,原数据储存位置在C盘差点爆了,在网上查询了更换存储路径的方式如下:

  1. 在任务管理器-服务里找到MySQL的启动项-右键点属性,查看配置文件的路径,我的原有路径为:C:/ProgramData/MySQL/MySQL Server 8.0/my.ini
  2. 在服务中停止MySQL服务,查看my.ini文件中datadir项,进入该目录下将data文件夹copy至新设定的文件目录下,我挪到了D:/MySQLData。因为涉及数据最好是复制,等复制完毕再删除原数据。同时复制一份my.ini文件至该目录下,并将my.ini文件中datadir更新至你新设定的路径D:/MySQLData/data
  3. win + R打开运行窗口,regedit打开注册表,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\路径下找到MySQL启动项,名字跟服务中一致,双击ImagePath,打开弹窗,把数值数据中my.ini的路径改为D:\MySQLData\my.ini,确定。
  4. 到服务中启动MySQL,能正常启动并且能正常连接则迁移完毕。

MySQL 数据文件迁移至新硬盘

[mysqld]
# * Basic Settings
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /data/c/mysql 修改
#datadir        =/var/lib/mysql

这个原因有二,其中任意的一个原因都会造成你被系统告知这个warning。如果你不是一个专业的linux系统安全工程师,或者你只是个PHP程序员,并没有对系统安全有深入的研究,你就不会太容易找到它的答案。 第一,selinux,记得当年念书时,字符界面安装redhat(很古老的操作系统么。。。)的时候,有这么一个选项,通常大家都听取前辈的建议,改变默认值以不安装它。但如果你恰好要操作的这台机器开着selinux,它确实能够使你的mysql无法在新目标位置进行mysql_install_db的操作,并爆出标题所示的警告。一个简单的解决办法是使用命令暂时关闭selinux,以便让你的操作可以继续下去:

setenforce 0

但最好使用一个永久方法,以便在重启后继续不要这货。修改/etc/selinux/config文件中设置SELINUX=disabled,然后重启或等待下次重启。 第二,apparmor,这个坑爹货和selinux一样的坑爹,它也对mysql所能使用的目录权限做了限制。在/etc/apparmor.d/usr.sbin.mysqld这个文件中有如下两行,规定了mysql使用的数据文件路径权限:

/var/lib/mysql/ r,
/var/lib/mysql/** rwk,

你一定看到了,/var/lib/mysql/就是之前mysql安装的数据文件默认路径,apparmor控制这里mysqld可以使用的目录的权限。我想把数据文件移动到/data/mysql下,那么为了使mysqld可以使用/data/mysql这个目录,照上面那两条,增加下面这两条就可以了:

/data/mysql/ r,
/data/mysql/** rwk,
 /var/lib/mysql/ r,
 /var/lib/mysql/** rwk,
 /datc/c/mysql/ r,
 /data/c/mysql/** rwk,
 /var/lib/mysql-files/ r,
 /data/c/mysql-files/ r,
 /data/c/mysql-files/** rwk,
 /var/lib/mysql-keyring/ r,
 /data/c/mysql-keyring/ r,
 /data/c/mysql-keyring/** rwk,

重启apparmor:

/etc/init.d/apparmor restart

linux环境下通过软链接变更mysql数据存储路径

想要改变mysql数据存储路径的想法最初是在生产服务器上mysql的数据放到了系统盘上,导致系统盘满额,没有足够的内存交换空间而死机。 将mysql数据存储到其他目录下有两种方法,方法一修改my.cnf配置文件,不过经过笔者通过网上的配置资料尝试总是不成功,环境是在centos7下操作的。后来想到一个简单的方法,通过linux的软链接将实际数据放到另外的目录里面就可以了。 操作系统是centos7 mysql是通过二进制包里面的rpm方式安装的。相当于全自动了。 先关闭mysql 默认情况下,rpm安装好的mysql会将数据放置在/var/lib/mysql目录当中,我们想将数据迁移到/mnt/data目录当中,在terminal当中输入:

mv /var/lib/mysql /mnt/data

mv命令会直接将/var/lib/mysql文件夹直接剪切到/mnt/data目录当中。 这时我们需要回到/var/lib目录当中,在这个目录当中建立软链接:

ln -s /mnt/data/mysql /var/lib/mysql

软链接相当于windows里面创建目录快捷方式是一样的,这个时候你应该可以看到mysql文件夹回到了/var/lib目录当中,要进去查看一下mysql的路径是否和my.cnf一致。 这时候我们再启动mysql:

systemctl start mysqld

以上我们就将数据迁移到其他目录下,并且还没有修改和变更my.cnf文件。