ubuntu10.04下修改mysql的datadir的问题

ubuntu10.04下修改mysql的datadir的问题

转自:http://blog.sina.com.cn/s/blog_4152a9f50100mq5i.html

昨天由于服务器空间告紧,需要将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才行!请参照上面的方法!

时间: 2024-07-30 08:52:12

ubuntu10.04下修改mysql的datadir的问题的相关文章

Ubuntu16.04下修改MySQL数据的默认存储位置

由于在Linux下MySQL默认是存储在/var/lib/mysql目录下,mysql的数据会非常大,由于/var所划分的空间不够大,所以我们需要将mysql数据存放路径修改一下,放到大分区里面,以便可以应付mysql数据增长 1.首先第一步当然是down掉MySQL服务 /etc/init.d/mysql stop 2.设置新的存放路径 mkdir -p /data/mysql 3.复制原有数据 cp -R /var/lib/mysql/* /mysql_data/mysql 4.修改权限 c

在ubuntu10.04 下将360wifi当无线网卡使用

通过百度“360wifi linux“ 已经有很多解决方案.主要过程是从网上下载mt7601驱动包,编译出一个内核模块后,再通过modprobe 添加模块.下面描述的是基于我本机的特点所做的额外工作.我的ubuntu是比较老的10.04,32位,运行vmware虚拟机上, 用 uname -r 得到的结果是 2.6.32-21-generic. 1. make 失败 错误是找不到目录 /lib/modules/2.6.32-21-generic/build. 进入到 /lib/modules/2

ubantu 下 修改mysql 默认编码

启动mysql后,以root登录mysql [email protected]:~# mysql -uroot -proot mysql> show variables like 'character%'; #执行编码显示+--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+

linux下修改MySQL root密码后数据库消失

Linux系统下如果没有通过password()函数修改mysql的root密码就会导致mysql数据库消失.有些人可能不知道而直接修改了mysql的root密码,于是产生了mysql数据库消失的问题,这个时候该怎么处理呢? 可以用下面的办法解决: 1.修改mysql数据库目录配置文件:my.cnf(或my.ini) [mysqld]下添加: skip-grant-tables 2.重启mysql服务,然后用mysql 登录. 3.进入后,可以看到,mysql数据库已呈现,然后修改密码: upd

mac下修改mysql-root密码-各种权限问题解决

官方资料:http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html#resetting-permissions-unix 还有一个值得参考的mysql安装,与python-mysql安装博客http://hearrain.com/2011/01/498 据官方文档说, For example, if you run the server using the mysql login account, you should l

windows2003下修改mysql密码

1:进入cmd 2:命令:mysql -u root mysql -p 回车 输入密码: 3:use mysql; 4:命令:update user set password=password('新密码') where user='root'; //最后分号不要丢 5:命令:flush privileges; //刷新权限表 6:重启mysql windows2003下修改mysql密码,布布扣,bubuko.com

Windows下修改mysql root用户密码

忘记mysql的root密码是一件让人头疼的问题. 下面理一下Windows7下面重置root密码的方法. 1.打开一个命令行窗口:这儿必须注意,要使用管理员身份打开: 2.关闭mysql服务:net stop mysql 3.运行 mysqld --skip-grant-tables.该命令是让mysql启动的时候跳过授权表,这儿要注意的是网上很多地方都是 mysqld-nt,但新版本已经被mysqld取代了. 4.重开一个命令行窗口(用管理员身份打开), 运行命令: mysql -u roo

phpmyadmin登录报错外加linux下修改mysql登录密码

1.centos6.5中修改mysql的登录密码. [[email protected] ~]# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 报错信息, 解决办法: [[email protected] ~]# /etc/init.d/mysqld stop 停止 mysqld:              

Linux学习之CentOS(二十)--CentOS6.4下修改MySQL编码方法

但是当我们在试图对数据库中的数据进行备份或者将sql文件导入到我们的数据库时可能就会碰到编码的问题,在windows下安装mysql时我们可以在安装的时候就选择好整个数据库的编码方式(通常设置成utf8),在linux下安装mysql的时候就不会有图形界面的安装,所以这篇随笔将记录一下如何在Linux系统下修改MySQL编码的方法 默认登陆到mysql后,我们首先可以通过 show variables like 命令来查看系统变量 例如我们可以通过  SHOW VARIABLES LIKE '%