`
xgbjmxn
  • 浏览: 269351 次
  • 性别: Icon_minigender_1
  • 来自: 新乡
社区版块
存档分类
最新评论

Ubuntu 10.04下修改MySQL的datadir的问题

阅读更多
    Ubuntu 10.04下修改MySQL的datadir的问题

    2011-09-08 14:21:59     我来说两句 0
    我要投稿    [字体:小 大]

    由于服务器空间告紧,需要将Ubuntu 10.04下mysql的datadir从默认的/var/lib/mysql移到/usr/local/mysql下,操作如下:
    1.修改了/etc/mysql/my.cnf,改为:datadir = /usr/local/mysql
    2.cp -a /var/lib/mysql /usr/local/
    3./etc/init.d/mysql start
    
    问题出现了,系统报错了,无法启动mysql,日志显示为:Can't find file: "./mysql/plugin.frm'(errno:13)
    [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
    但是执行mysql_upgrade时,同样报错。
    在网上google一圈后,没有找到解决办法。
    忽然想起,之前在调试mail server时,修改系统默认存储目录,需要修改系统的chroot参数,于是决定试下,后面事实证明就是这个原因。这里把相关步骤记录下,以备需要的朋友共享之。
    修改系统的chroot,需要修改/etc/apparmor.d下的相关文件,这里以mysql为例,需要修改:usr.sbin.mysqld和abstractions/mysql两个文件。
    1.修改usr.sbin.mysqld里面的两行内容:/var/lib/mysql/ r,改为:/usr/local/mysql/ r,/var/lib/mysql/** rwk,改为:/usr/local/mysql/** rwk,
    2.修改abstractions/mysql中一行:/var/lib/mysql/mysql.sock rw,改为:/usr/local/mysql/mysql.sock rw,
    3.重新加载apparmor服务:/etc/init.d/apparmor reload
    这时再启动mysql就成功了!
    启示:不只是mysql,如果需要修改其他一些系统自带软件的存储目录,改了配置之后,仍然报错的话,则可能需要修改相应chroot才行!请参照上面的方法!
    关键就下面几点:

        1. 找到 mysql 启动时加载的 Option File(如果有多个,那么一定是起作用的那一个)。在我的机器上只有一个,是 "/etc/mysql/my.cnf",进去把 datadir 一项的值改成自己指定的目录。这个不难。

        2. 最关键的,把原先的数据目录(默认是 "/var/lib/mysql")里面的东西都转移到新的目录下,而且 !一定! 要保证相关的内容在新的目录下仍然保持跟原来一样的用户和权限设置。用 chown 和 chmod 就能搞定,很简单。但是如果这步出了差错,找起来就麻烦了,重新启动 mysql 的时候只会说连不上,很难发现真正的原因。我是通过 Ubuntu 下的 Package Manager 安装的 MySQL,安装之后相关文件和目录的 user name 和 group name 都是 “mysql”,所以新的 datadir 也要将 owner 设成 mysql,并确保它有合适的权限。

        3. 不仅要保证 datadir 的用户/权限设置正确,如果 datadir 目录比较深的话,好像跟上面几级目录的权限也有关系。总之,要保证用户 “mysql” 能顺利地访问新的 datadir 的内容,而且要保证所有必要的内容都已被复制到新的 datadir 下面。在 MySQL 里面,像用户记录这种启动时必需的信息也是以数据库形式保存的,mysql 在启动时会加载这些必需的 database,如果相关目录的权限有问题,或者文件根本不存在,都会启动失败。

        4. 关于 AppArmor,网上资料说需要把所做的改动通过 profile 文件告诉它,否则 AppArmor 会阻止 mysql 访问新的文件路径而导致 mysql 不能运行。以我的经验来看,好像没感觉到 AppArmor 的影响。不过保险起见,还是按照网上说的,修改一下它的 profile 文件,在我的机器上是: "/etc/apparmor.d/usr.sbin.mysqld",照着原先 datadir 有关内容的格式,新加几行:

            /my/new/datadir/ r,
            /my/new/datadir/** rwk,

        5. AppArmor 和 mysql 都需要重启。重启的命令是:
         
            sudo /etc/init.d/{apparmor|mysql} stop
            sudo /etc/init.d/{apparmor|mysql} start

        或者用 service 命令也可以:

            sudo service {apparmor|mysql} stop
            sudo service {apparmor|mysql} start

    ---- TroubleShooting:

       mysql 的 Error log 文件,在我的机器上是: "/var/log/mysql/error.log",如果出了问题,这里记录的是真正的原因。对于终端里的几行输出不用太在意,基本上无论出什么事都只会说连不上Server,没什么用。
分享到:
评论

相关推荐

    ubuntu 10.04 LTS界面汉化包

    ubuntu10.04界面汉化安装包,deb格式。由于包的相互依赖,需用如下命令安装: #dpkg -i language-pack-zh-hans_1%3a10.04+20100421_all.deb language-pack-zh-hans-base_1%3a10.04+20100421_all.deb language-pack-...

    Ubuntu 10.04完整版

    《Ubuntu 10.04完整版》这本书是针对Ubuntu 10.04 LTS(长期支持版)发行版的一份详尽指南,旨在帮助读者深入理解和熟练掌握这个流行的Linux操作系统。Ubuntu是一款基于Debian的开源操作系统,以其用户友好、易用性...

    Ubuntu 10.04 安装配置手记.pdf

    本文档记录了 Ubuntu 10.04 的安装配置过程,包括硬盘安装、Grub4Dos 安装、menu.lst 文件修改、ubuntu-10.04-alternate-i386.iso 文件复制、安装过程、系统通用配置等。 一、硬盘安装 Ubuntu 10.04 Alternate i386...

    ubuntu 10.04LTS正式版DVD版ISO镜像32位64位种子

    Ubuntu 10.04 LTS,全称Lucid Lynx,是Ubuntu操作系统的一个重要发布版本,于2010年4月29日正式推出。LTS代表“长期支持”(Long Term Support),意味着这个版本将得到更长时间的技术支持,对于个人用户和企业用户...

    ubuntu10.04

    标题“Ubuntu10.04”指的是Ubuntu操作系统的一个特定版本,即10.04 LTS(长期支持版),代号为“Lucid Lynx”。Ubuntu是基于Debian GNU/Linux的开源操作系统,以其用户友好的界面和广泛的应用软件库而闻名。LTS版本...

    安装Ubuntu10.04全过程(图解)

    在深入探讨如何安装Ubuntu 10.04的全过程之前,我们先来了解下Ubuntu 10.04以及为何选择在VMware Workstation虚拟机中进行安装。 ### Ubuntu 10.04简介 Ubuntu 10.04 LTS(长期支持版本),代号为“Lucid Lynx”,...

    Ubuntu 10.04解决声卡驱动问题

    "Ubuntu 10.04 解决声卡驱动问题" 在 Ubuntu 10.04 中,声卡驱动问题是一件非常头疼的事情,特别是在使用 alsamixer 无法解决耳机等声音问题时,如耳机不出声,或是外接音箱无声音等。幸好,有些方法可以解决这个...

    Ubuntu 10.04完全版second part

    Ubuntu 10.04完全版入门教程 包含Ubuntu安装,配置过程,以及shell编程等内容。 分两部分: Ubuntu 10.04完全版first part Ubuntu 10.04完全版second part

    ubuntu10.04 安装 opencv2.2.0

    ### Ubuntu 10.04 下安装 OpenCV 2.2.0 详细步骤 #### 知识点一:Ubuntu 10.04 环境介绍 - **Ubuntu 10.04 LTS**(代号 Lucid Lynx)是 Ubuntu 的一个长期支持版本,发布于2010年4月29日。它提供了大量的软件包,...

    VM下安-ubuntu10.04的详细图文教程

    【VMware Workstation安装Ubuntu 10.04详细教程】 VMware Workstation是一款流行的虚拟机软件,允许用户在同一台物理计算机上运行多个操作系统。在这个教程中,我们将详细讲解如何在VMware Workstation中安装Ubuntu...

    VM7安装Ubuntu 10.04系统

    本篇将详细介绍如何使用VM7来安装Ubuntu 10.04 LTS(Lucid Lynx)操作系统。 一、VMware Workstation 7简介 VMware Workstation 7是VMware公司推出的一个版本,支持创建、配置和运行虚拟机。它提供了丰富的功能,如...

    Ubuntu10.04下C连接mysql数据库.docx

    在Ubuntu 10.04操作系统...以上就是在Ubuntu 10.04环境下,使用C语言连接MySQL数据库所需了解的关键知识点。确保正确安装相关软件,配置好MySQL服务,并掌握C API的使用方法,以便在C程序中安全有效地与MySQL进行交互。

    ubuntu10.04 DSL 上网攻略 pdf

    ### Ubuntu 10.04 DSL 上网配置详解 #### 引言 随着Linux操作系统的日益普及,越来越多的用户开始尝试使用Linux系统替代传统的Windows操作系统。对于初学者而言,Linux的强大功能与灵活性往往伴随着较高的学习曲线...

    Ubuntu 10.04 嵌入式开发环境配置

    Ubuntu 10.04 LTS,全称Ubuntu 10.04 Long Term Support,是Ubuntu操作系统家族中的一个长期支持版本,发布于2010年。该版本在发布后5年内都得到了官方的安全更新及技术支持,对于企业用户和需要长期稳定运行环境的...

    ubuntu10.04安装配置指南.docx

    Ubuntu 10.04 安装配置指南 本文档提供了一个详细的 Ubuntu 10.04 安装配置指南,涵盖了从准备安装到配置输入法的所有步骤。首先,用户需要下载 Ubuntu 光盘镜像文件,并校验其 MD5 值,然后备份数据,最后可以选择...

    ubuntu 10.04 可用chrome

    官方的chrome 只支持12.04以上的版本,由于所需的库不同 ubuntu 10.04 只能用之前的版本

    Ubuntu10.04软件安装.pdf

    "Ubuntu 10.04 软件安装指南" 从标题和描述中,我们可以了解到这篇文章的主要内容是关于 Ubuntu 10.04 的软件安装和基本配置的指南。从标签中,我们可以看到这是一个文档类型的资源。 从部分内容中,我们可以看到...

    ubuntu10.04 正式版种子

    4月29日最新发布的Ubuntu10.04正式版,是有一个LTS长期支持的版本。

Global site tag (gtag.js) - Google Analytics