您的当前位置:首页mysql安装后更改目录

mysql安装后更改目录

2023-11-11 来源:哗拓教育

[mysql数据目录迁移错位]错误解决 

大概需要4个步骤,

其中第1步通过service mysql stop停止数据库。

第2步移动数据文件,不知道是否为Ubuntu智能的原因,移动数据库的时候,除了数据文件,连权限也一起带过去了 

root@T60:~#mv /var/lib/mysql /home/ 

我还在记录/var/lib/mysql各目录的权限,当mv完成之后,/home/下面的权限保留原来/var/lib/mysql的各类权限,其中有目录,文件等等,连chown,chmod都给省事了。

本想这样就没事了,执行第4步一直启动不了,看日志文件/var/log/mysql/error.log的结果是

/usr/sbin/mysqld: Can‘t find file: ‘./mysql/plugin.frm‘ (errno: 13)100803

12:36:36 [ERROR] Can‘t open the mysql.plugin table.

Please run mysql_upgrade to create it.100803 12:36:36

InnoDB: Operating system error number 13 in a file operation.

InnoDB: The error means mysqld does not have the access rights to

InnoDB: the directory.

InnoDB: File name ./ibdata1InnoDB: File operation call: ‘open‘.

InnoDB: Cannot continue operation.

刚才mv过去的权限都是对的,不存在还有什么权限的问题,到网上搜索大部分都是redhat系列的系统,其中的SElinux对ubuntu不适用,还差点真用chcon来修改所谓的安全之类的权限了

其实,在my.cnf中注释部分说明的很清楚

# * IMPORTANT# If you make changes to these settings and your system uses apparmor, you may# also need to also adjust /etc/apparmor.d/usr.sbin.mysqld.

按照说明进行第3步,注释掉原来的路径,增加新的路径,2行都要修改

root@T60:~# vi /etc/apparmor.d/usr.sbin.mysqld

# /var/lib/mysql/ r,# /var/lib/mysql/** rwk, 改为 /home/mysql/ r, /home/mysql/** rwk,

更新参数

root@T60:~# /etc/init.d/apparmor reload

* Reloading AppArmor profiles Skipping profile in /etc/apparmor.d/disable: usr.bin.firefox [ OK ]

修改完成后执行第4步root@T60:~# service mysql start 

可以在日志中看见启动成功 

/var/log/mysql/error.log 

100803 12:53:07 InnoDB: Started; log sequence number 0 5646278 

100803 12:53:07 [Note] Event Scheduler: Loaded 0 events 

100803 12:53:07 [Note] /usr/sbin/mysqld: ready for connections. 

Version: ’5.1.41-3ubuntu12.4-log’ socket: ‘/var/run/mysqld/mysqld.sock’ port: 3306 (Ubuntu)

本文出自 “向着炮火前进!” 博客,请务必保留此出处http://zhaopeiyan.blog.51cto.com/10522430/1968405

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服务即可。

mysql如何修改数据库目录

Windows下MySQL数据目录修改的方法:

停掉MySQL服务:

windows services 中的MySQL服务,停止。

建立新的数据文件目录:

也即你现在想要存储的MySQL数据目录,例如:E:MySQL5.6Data

拷贝数据文件:

将原数据目录下的“数据文件及子目录”拷贝到刚才建立的E:MySQL5.6Data目录下;注意你的原数据文件目录及数据文件,不要拷贝错了,如果你没怎么修改过原目录的话,原目录的样子应该是“..ProgramDataMySQL...data”,把data目录下的内容拷贝至新目录下。

新数据文件目录授权

这一步很重要,很多同学就因为这部导致无法启动MySQL,只有1067错误。

右键新目录E:MySQL5.6Data,选择“安全”选项卡,将下面所有的用户及组授予完全控制权限(注意:测试机可以这么做,如果是生产环境,你需要一个一个试,直到不报1067错误为止)。

修改my.ini文件

网上很多文章都说my.ini在MySQL的安装目录下,很多人可能会发现那个位置并没有my.ini文件,只有一个my-default.ini文件,这个文件基本没用。

非安装版的MySQL:my.ini配置文件可能就在这个目录下;

安装版的MySQL:my.ini文件大多数都在你的数据文件目录下,如果不在,你可以在windows服务列表中右键MySQL服务,选择属性,在“常规”选项卡中可以看到可执行文件路径,后面有一个 --defaultFile参数,这个参数后面的值就是你的my.ini文件的路径。

找到my.ini文件后,打开,修改其中的datadir的值为新目录,如E:MySQL5.6Data;大多数情况下修改这个地方就行了,但为了保证一些“变异”,你可以通过搜索原数据路径关键字(如原来的盘符)来检测是否需改完毕了。

修改完毕后保存,如果你是安装版的MySQL,且my.ini文件就在原数据文件目录下,你还需要做两件事:

1、把修改后的my.ini文件拷贝到MySQL安装目录或者新的数据文件目录下;

2、windows + r 打开“运行”,输入regedit回车打开注册表,HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->services下找到MySQL服务键,然后修改其ImagePath属性值为my.ini文件新的绝对路径。

启动MySQL

在MySQL服务列表中,启动MySQL。

更多相关免费学习推荐:mysql教程(视频)

mysql如何修改数据库目录

Windows下MySQL数据目录修改的方法:

停掉MySQL服务:

windows services 中的MySQL服务,停止。

建立新的数据文件目录:

也即你现在想要存储的MySQL数据目录,例如:E:MySQL5.6Data

拷贝数据文件:

将原数据目录下的“数据文件及子目录”拷贝到刚才建立的E:MySQL5.6Data目录下;注意你的原数据文件目录及数据文件,不要拷贝错了,如果你没怎么修改过原目录的话,原目录的样子应该是“..ProgramDataMySQL...data”,把data目录下的内容拷贝至新目录下。

新数据文件目录授权

这一步很重要,很多同学就因为这部导致无法启动MySQL,只有1067错误。

右键新目录E:MySQL5.6Data,选择“安全”选项卡,将下面所有的用户及组授予完全控制权限(注意:测试机可以这么做,如果是生产环境,你需要一个一个试,直到不报1067错误为止)。

修改my.ini文件

网上很多文章都说my.ini在MySQL的安装目录下,很多人可能会发现那个位置并没有my.ini文件,只有一个my-default.ini文件,这个文件基本没用。

非安装版的MySQL:my.ini配置文件可能就在这个目录下;

安装版的MySQL:my.ini文件大多数都在你的数据文件目录下,如果不在,你可以在windows服务列表中右键MySQL服务,选择属性,在“常规”选项卡中可以看到可执行文件路径,后面有一个 --defaultFile参数,这个参数后面的值就是你的my.ini文件的路径。

找到my.ini文件后,打开,修改其中的datadir的值为新目录,如E:MySQL5.6Data;大多数情况下修改这个地方就行了,但为了保证一些“变异”,你可以通过搜索原数据路径关键字(如原来的盘符)来检测是否需改完毕了。

修改完毕后保存,如果你是安装版的MySQL,且my.ini文件就在原数据文件目录下,你还需要做两件事:

1、把修改后的my.ini文件拷贝到MySQL安装目录或者新的数据文件目录下;

2、windows + r 打开“运行”,输入regedit回车打开注册表,HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->services下找到MySQL服务键,然后修改其ImagePath属性值为my.ini文件新的绝对路径。

启动MySQL

在MySQL服务列表中,启动MySQL。

更多相关免费学习推荐:mysql教程(视频)

MySQL如何更改数据库数据存储目录详解

前言

MySQL数据库默认的数据库文件位于/var/lib/mysql下,有时候由于存储规划等原因,需要更改MySQL数据库的数据存储目录。下文总结整理了实践过程的操作步骤。话不多说了,一起来看看吧

方法如下:

1:确认MySQL数据库存储目录

[root@DB-Server tmp]# mysqladmin -u root -p variables | grep datadir

Enter password:

| datadir | /var/lib/mysql/

2:关闭MySQL服务

在更改MySQL的数据目录前,必须关闭MySQL服务。

方式1:

[root@DB-Server ~]# service mysql status

MySQL running (9411)[ OK ]

[root@DB-Server ~]# service mysql stop

Shutting down MySQL..[ OK ]

[root@DB-Server ~]#

方式2:

[root@DB-Server ~]# /etc/rc.d/init.d/mysql status

MySQL running (8900)[ OK ]

[root@DB-Server ~]# /etc/rc.d/init.d/mysql stop

Shutting down MySQL..[ OK ]

[root@DB-Server ~]#

3:创建新的数据库存储目录

[root@DB-Server ~]# cd /u01

[root@DB-Server u01]# mkdir mysqldata

4:移动MySQL数据目录到新位置

[root@DB-Server ~]# mv /var/lib/mysql /u01/mysqldata/

5:修改配置文件my.cnf

并不是所有版本都包含有my.cnf这个配置文件,在MySQL 5.5版本,我就找不到my.cnf这个配置文件, 而有些MySQL版本该文件位于/usr/my.cnf,如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf中。命令如下:

[root@DB-Server mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

编辑/etc/my.cnf文件,修改参数socket

MySQL 5.5 版本

# The following options will be passed to all MySQL clients

[client]

#password = your_password

port = 3306

socket = /u01/mysqldata/mysql/mysql.sock

# Here follows entries for some specific programs

# The MySQL server

[mysqld]

port = 3306

socket = /u01/mysqldata/mysql/mysql.sock

skip-external-locking

key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

6:修改启动脚本/etc/init.d/mysql

将参数datadir修改为datadir=/u01/mysqldata/mysql/

7:启动MySQL服务并验证MySQL数据库路径

[root@DB-Server ~]# service mysql start

Starting MySQL..[ OK ]

[root@DB-Server ~]# mysqladmin -u root -p variables | grep datadir

Enter password:

| datadir | /u01/mysqldata/mysql/

我的疑问:

1: 在修改数据库的存储目录前,/var/lib/mysql/目录下根本没有mysql.sock文件,安装上面配置后,就会生成mysql.sock文件。

关于mysql.sock文件,搜索了一下资料:mysql.sock是用于socket连接的文件。也就是只有你的守护进程启动起来这个文件才存在。但是你的mysql程序(这个程序是客户端,服务器端是mysqld)可以选择是否使用mysql.sock文件来连接(因为这个方法只适合在Unix主机上面连接本地的mysqld),对于非本地的任何类型的主机。那么这个文件是否一定需要的呢? 这个需要进一步了解清楚。

2:我在网上看有些网友总结的修改MySQL数据路径,有些需要给新建的目录的权限做一些处理,而有些有不用对目录权限进行授权,我没有处理,也没有什么问题。到底要不要对新的数据库目录授权呢?

3:我在MySQL_5.6.20这个版本测试时,不修改my.cnf,只修改启动脚本/etc/init.d/mysql,也完全没有啥问题。也没有myssql.sock文件生成。

4: 注意如果没有禁用selinux, 修改MySQL的数据路径后启动MySQL服务会遇到一些错误。关于这个的解释是后台服务都需要有对相应目录的对应权限,而 mysql 的默认路径/var/lib/mysql 已经添加了相应的策略,修改路径后由于没有相应的策略,导致后台进程读取文件被selinux阻止,从而出现权限错误。 所以要么关闭Selinux或修改文件安全上下文。

[root@DB-Server mysql]# /etc/init.d/mysql start

Starting MySQL....The server quit without updating PID file (/u01/mysqldata/mysql//DB-Server.localdomain.pid).[FAILED]

[root@DB-Server mysql]#

[root@DB-Server mysql]# chcon -R -t mysqld_db_t /u01/mysqldata/mysql/

[root@DB-Server mysql]# /etc/init.d/mysql start

Starting MySQL.[ OK ]

[root@DB-Server mysql]#

总结

如何在Windows XP系统中修改MySQL5.0的数据库文件路径

Windows下MySQL数据目录修改的方法:

停掉MySQL服务:

windows services 中的MySQL服务,停止。

建立新的数据文件目录:

也即你现在想要存储的MySQL数据目录,例如:E:MySQL5.6Data

拷贝数据文件:

将原数据目录下的“数据文件及子目录”拷贝到刚才建立的E:MySQL5.6Data目录下;注意你的原数据文件目录及数据文件,不要拷贝错了,如果你没怎么修改过原目录的话,原目录的样子应该是“..ProgramDataMySQL...data”,把data目录下的内容拷贝至新目录下。

新数据文件目录授权

这一步很重要,很多同学就因为这部导致无法启动MySQL,只有1067错误。

右键新目录E:MySQL5.6Data,选择“安全”选项卡,将下面所有的用户及组授予完全控制权限(注意:测试机可以这么做,如果是生产环境,你需要一个一个试,直到不报1067错误为止)。

修改my.ini文件

网上很多文章都说my.ini在MySQL的安装目录下,很多人可能会发现那个位置并没有my.ini文件,只有一个my-default.ini文件,这个文件基本没用。

非安装版的MySQL:my.ini配置文件可能就在这个目录下;

安装版的MySQL:my.ini文件大多数都在你的数据文件目录下,如果不在,你可以在windows服务列表中右键MySQL服务,选择属性,在“常规”选项卡中可以看到可执行文件路径,后面有一个 --defaultFile参数,这个参数后面的值就是你的my.ini文件的路径。

找到my.ini文件后,打开,修改其中的datadir的值为新目录,如E:MySQL5.6Data;大多数情况下修改这个地方就行了,但为了保证一些“变异”,你可以通过搜索原数据路径关键字(如原来的盘符)来检测是否需改完毕了。

修改完毕后保存,如果你是安装版的MySQL,且my.ini文件就在原数据文件目录下,你还需要做两件事:

1、把修改后的my.ini文件拷贝到MySQL安装目录或者新的数据文件目录下;

2、windows + r 打开“运行”,输入regedit回车打开注册表,HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->services下找到MySQL服务键,然后修改其ImagePath属性值为my.ini文件新的绝对路径。

启动MySQL

在MySQL服务列表中,启动MySQL。

更多相关免费学习推荐:mysql教程(视频)

如何在Windows XP系统中修改MySQL5.0的数据库文件路径

Windows下MySQL数据目录修改的方法:

停掉MySQL服务:

windows services 中的MySQL服务,停止。

建立新的数据文件目录:

也即你现在想要存储的MySQL数据目录,例如:E:MySQL5.6Data

拷贝数据文件:

将原数据目录下的“数据文件及子目录”拷贝到刚才建立的E:MySQL5.6Data目录下;注意你的原数据文件目录及数据文件,不要拷贝错了,如果你没怎么修改过原目录的话,原目录的样子应该是“..ProgramDataMySQL...data”,把data目录下的内容拷贝至新目录下。

新数据文件目录授权

这一步很重要,很多同学就因为这部导致无法启动MySQL,只有1067错误。

右键新目录E:MySQL5.6Data,选择“安全”选项卡,将下面所有的用户及组授予完全控制权限(注意:测试机可以这么做,如果是生产环境,你需要一个一个试,直到不报1067错误为止)。

修改my.ini文件

网上很多文章都说my.ini在MySQL的安装目录下,很多人可能会发现那个位置并没有my.ini文件,只有一个my-default.ini文件,这个文件基本没用。

非安装版的MySQL:my.ini配置文件可能就在这个目录下;

安装版的MySQL:my.ini文件大多数都在你的数据文件目录下,如果不在,你可以在windows服务列表中右键MySQL服务,选择属性,在“常规”选项卡中可以看到可执行文件路径,后面有一个 --defaultFile参数,这个参数后面的值就是你的my.ini文件的路径。

找到my.ini文件后,打开,修改其中的datadir的值为新目录,如E:MySQL5.6Data;大多数情况下修改这个地方就行了,但为了保证一些“变异”,你可以通过搜索原数据路径关键字(如原来的盘符)来检测是否需改完毕了。

修改完毕后保存,如果你是安装版的MySQL,且my.ini文件就在原数据文件目录下,你还需要做两件事:

1、把修改后的my.ini文件拷贝到MySQL安装目录或者新的数据文件目录下;

2、windows + r 打开“运行”,输入regedit回车打开注册表,HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->services下找到MySQL服务键,然后修改其ImagePath属性值为my.ini文件新的绝对路径。

启动MySQL

在MySQL服务列表中,启动MySQL。

更多相关免费学习推荐:mysql教程(视频)

如何更改MYSQL默认数据库的目录?

1.停止数据库服务:
  使用/etc/init.d/mysql stop 或者 stop mysql

  2. 在目标位置(/data)创建数据库文件的目录(如/mysqldb),并复制(如果不再使用默认的位置,则可以直接mv原先数据库文件到新目录下)原先的数据库文件目录到该目录下:
  cd /data

  mkdir mysqldb
  cp -r /var/lib/mysql /data/mysqldb/
  经过一段时间的等待后,在/data/mysqldb/下面就有了原先默认的mysql数据库文件目录的拷贝“/mysql”
  
  3.修改my.cnf文件
  # vim /etc/mysql/my.cnf
  将datadir = /var/lib/mysql 改为 datadir = /data/mysqldb/mysql
  另外由于当前my.cnf 中的socket = /var/run/mysqld/mysqld.sock(而并非像网上所说的sock = /var/lib/mysql/mysql.sock),即socket的位置并不在数据库文件所在的位置,因此可以不做类似网上其他网页所说的,要使用以下的命令做一个mysql.sock 链接:
  ln -s /data/mysqldb/mysql/mysql.sock /var/lib/mysql/mysql.sock (需要从/home/data/mysql下复制一份过来)

  4. 修改数据库的权限:
  # chown -R mysql:mysql /data/mysqldb/mysql/  ← 改变数据库文件目录的归属为mysql
  # chmod 700 /data/mysqldb/mysql/whois/  ← 改变数据库目录whois的属性为700

  # chmod 660 /data/mysqldb/mysql/whois/*  ← 改变数据库中数据表的属性为660

 
  5. 修改文件usr.sbin.mysqld
  # vim /etc/apparmor.d/usr.sbin.mysqld

  把
  /var/lib/mysql r,
  /var/lib/mysql/** rwk,
  
  改成
  /data/mysqldb/mysql/ r,
  /data/mysqldb/mysql/** rwk,

  注意:没有该步骤的话,将导致数据库服务无法重启,好像在重启,但是一直卡住无反应。
  

  6.启动mysql服务器
  /etc/init.d/apparmor restart  
  /etc/init.d/mysql restart (或者使用 restart mysql)

如何更改MYSQL默认数据库的目录?

1.停止数据库服务:
  使用/etc/init.d/mysql stop 或者 stop mysql

  2. 在目标位置(/data)创建数据库文件的目录(如/mysqldb),并复制(如果不再使用默认的位置,则可以直接mv原先数据库文件到新目录下)原先的数据库文件目录到该目录下:
  cd /data

  mkdir mysqldb
  cp -r /var/lib/mysql /data/mysqldb/
  经过一段时间的等待后,在/data/mysqldb/下面就有了原先默认的mysql数据库文件目录的拷贝“/mysql”
  
  3.修改my.cnf文件
  # vim /etc/mysql/my.cnf
  将datadir = /var/lib/mysql 改为 datadir = /data/mysqldb/mysql
  另外由于当前my.cnf 中的socket = /var/run/mysqld/mysqld.sock(而并非像网上所说的sock = /var/lib/mysql/mysql.sock),即socket的位置并不在数据库文件所在的位置,因此可以不做类似网上其他网页所说的,要使用以下的命令做一个mysql.sock 链接:
  ln -s /data/mysqldb/mysql/mysql.sock /var/lib/mysql/mysql.sock (需要从/home/data/mysql下复制一份过来)

  4. 修改数据库的权限:
  # chown -R mysql:mysql /data/mysqldb/mysql/  ← 改变数据库文件目录的归属为mysql
  # chmod 700 /data/mysqldb/mysql/whois/  ← 改变数据库目录whois的属性为700

  # chmod 660 /data/mysqldb/mysql/whois/*  ← 改变数据库中数据表的属性为660

 
  5. 修改文件usr.sbin.mysqld
  # vim /etc/apparmor.d/usr.sbin.mysqld

  把
  /var/lib/mysql r,
  /var/lib/mysql/** rwk,
  
  改成
  /data/mysqldb/mysql/ r,
  /data/mysqldb/mysql/** rwk,

  注意:没有该步骤的话,将导致数据库服务无法重启,好像在重启,但是一直卡住无反应。
  

  6.启动mysql服务器
  /etc/init.d/apparmor restart  
  /etc/init.d/mysql restart (或者使用 restart mysql)

怎样找到linux下mysql安装目录并改变安装目录

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。

1.安装方法有两种,一种是yum安装,另外一种是源码安装

rpm安装命令如下

yum install mysql-server -y

2.查看相关路径的方法如下

[root@rhel5 ~]# find / -name mysql -print

/etc/rc.d/init.d/mysql

/var/lib/mysql

/var/lib/mysql/mysql

/var/lock/subsys/mysql

/usr/lib/mysql

/usr/include/mysql

/usr/share/mysql

/usr/bin/mysql

而 data默认放在:/var/lib/mysql

2.一般来说只要修改数据的存放路径就可以,修改方法如下

原路径:/var/lib/mysql

目标路径:/home/data/mysql

(1)home目录下建立data目录

cd /home

mkdir data

(2)停止mysql进程

service mysqld stop

(3)把/var/lib/mysql整个目录保持权限复制到/home/data

cp -arp /var/lib/mysql /home/data/

(4)找到my.cnf配置文件

如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/找到my-medium*.cnf文件,拷贝到/etc/并改名为my.cnf

命令如下:

[root@test1 mysql]# cp

/usr/share/mysql/my-medium.cnf /etc/my.cnf

(5)编辑/etc/my.cnf

为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改

socket=/var/lib/mysql/mysql.sock 为:

socket=/home/data/mysql/mysql.sock

操作如下:

vi   my.cnf  (用vi工具编辑my.cnf文件,找到下列数据修改之)

# The MySQL server[mysqld]

port = 3306

#socket  =

/var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)

socket  = /home/data/mysql/mysql.sock (加上此行)

(6)修改MySQL启动脚本/etc/init.d/mysql

搜索datadir将/var/lib/mysql修改成现在的实际存放路径:home/data/mysql

[root@test1 etc]# vi /etc/init.d/mysql

get_mysql_option mysqld datadir "/data/mysql"

最后做一个mysql.sock 链接:

ln -s /home/data/mysql/mysql.sock

/var/lib/mysql/mysql.sock(需要从/home/data/mysql下复制一份过来)

(7)重新启动MySQL服务

service mysqld restart

最后创建数据库,查看目标目录下是否已经存在

mysql有安装目录怎么修改默认在C盘我想装在D盘

修改my.ini文件,datadir="D:/MySQL",关闭MySQL服务,再把原来的目录下的文件剪切到D:\MySQL中,启用服务就可以了。

显示全文