免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4833 | 回复: 9

drbd+mysql 权限问题 [复制链接]

论坛徽章:
0
发表于 2009-06-18 16:36 |显示全部楼层
这两天在实验 mysql+drbd+heartbeat

drbd配置已经完成了, 但是加上mysql的话就会出现mysql的权限错误( Mysql的错误代码号 13)

我的实验环境是这样的(虚拟机下,主机的操作系统为slackware 12)

虚拟机: VirutalBox 2.2.4
操作系统: Ubuntu 8.04.1 Server
Mysqld  5.0.51
Drbd  8.0.11


ubutu机和ubuntu2分别安装DRBD8和mysql-server, 两机分别有一块硬盘用于drbd

ubuntu的IP 为 10.9.210.2
ubuntu2的IP为 10.9.210.3

DRBD配置如下:
global { usage-count yes; }
common {
        protocol C;

        syncer {
         rate 10M;
         al-extents 257;
        }

        net {
#         cram-hmac-alg sha1;
          shared-secret "FooFunFactory";
        }

}

resource share {
       on ubuntu {
       device    /dev/drbd0;
       disk      /dev/sdb1;
       address   10.9.210.2:7898;
       meta-disk  internal;
      }

      on ubuntu2 {
       device    /dev/drbd0;
       disk      /dev/sdb1;
       address   10.9.210.3:7898;
       meta-disk  internal;
     }
}

两机上drbd.conf是相同的. 且在两机上分别 drbdadmin create-md share 然后启动drbd;  /etc/init.d/drbd start

经验证drbd正常工作

然后, 我打算使用drbd设备来存储/同步Mysql的数据

把ubuntu角色设置为为主机
drbdadm primary share

创建文件系统并挂载
mkfs.ext3 /dev/drbd0
mkdir /mysqldata
mount /dev/drbd0  /mysqldata

Mysql-server是用apt-get 的方式安装的
我把/etc/mysql/my.cnf中的 datadir改为 /mysqldata 然后试着重启mysql 但是mysql启动失败
把 datadir改回默认的/var/lib/mysql, 并把 /mysqldata作软链接到 /var/lib/mysql , 启动mysql也失败


用mysqld_safe --datadir=/mysqldata 启动, 发现下面的错误

nohup: ignoring input and redirecting stderr to stdout
Starting mysqld daemon with databases from /mysqldata
mysqld_safe[6155]: started
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[6165]: ended

用mysqld --datadir=/mysqldata 启动, 错误如下:

090618 12:37:12 [Warning] Can't create test file /mysqldata/ubuntu.lower-test
090618 12:37:12 [Warning] Can't create test file /mysqldata/ubuntu.lower-test
090618 12:37:12  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 ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation

把/etc/mysql/my.cnf中的 skip-innodb选项打开, 重新用mysqld --datadir=/mysqldata 启动, 错误如下:
090618 12:40:11 [Warning] Can't create test file /mysqldata/ubuntu.lower-test
090618 12:40:11 [Warning] Can't create test file /mysqldata/ubuntu.lower-test
090618 12:40:11 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist


用mysql_install_db命令创建数据库, 错误如下
Installing MySQL system tables...
090618 12:41:12 [Warning] Can't create test file /mysqldata/ubuntu.lower-test
090618 12:41:12 [Warning] Can't create test file /mysqldata/ubuntu.lower-test
ERROR: 1005  Can't create table 'db' (errno: 13)
090618 12:41:12 [ERROR] Aborting
090618 12:41:12 [Note] /usr/sbin/mysqld: Shutdown complete
Installation of system tables failed!

所有的提示均显示权限有问题


/mysqldata的权限如下:
drwxr-xr-x   mysql mysql   mysqldata

已测试过 mysql用户可以些文件夹下新建文件/文件夹

挂载drbd0设备的选项:
/dev/drbd0 on /mysqldata type ext3 (rw)


请高手指点, 或者大家共同讨论  谢谢

[ 本帖最后由 black_fire 于 2009-6-18 16:42 编辑 ]

论坛徽章:
0
发表于 2009-06-18 16:43 |显示全部楼层
补充了一下我的实验环境

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
发表于 2009-06-18 16:47 |显示全部楼层
呵呵。。在主上先更改数据目录为你drbd挂载的目录,并注意权限。初始化一下mysql.启动即可!

现在是因为你的初始化数据不在这里。。应该是在原来的地方。

论坛徽章:
0
发表于 2009-06-18 17:10 |显示全部楼层
不好意思,我不是很清楚你的意思, 请指教

mysql_install_db就是初始化数据库吧?
在这里就出现了权限错误了:

Installing MySQL system tables...
090618 13:19:46 [Warning] Can't create test file /mysqldata/ubuntu.lower-test
090618 13:19:46 [Warning] Can't create test file /mysqldata/ubuntu.lower-test
ERROR: 1005  Can't create table 'db' (errno: 13)
090618 13:19:46 [ERROR] Aborting
090618 13:19:46 [Note] /usr/sbin/mysqld: Shutdown complete
Installation of system tables failed!


而且, 经过这一步后, 在/mysqldata下面实际上产生了一个空的mysql文件夹
drwx------  mysql root  mysql

[ 本帖最后由 black_fire 于 2009-6-18 17:12 编辑 ]

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
发表于 2009-06-18 17:35 |显示全部楼层
是这样执行的?
rm -rf /mysqldata/*;mysql_install_db --user=mysql

my.cnf里加上datadir路径。

论坛徽章:
0
发表于 2009-06-19 09:41 |显示全部楼层
rm -rf /mysqldata/*

mysql_install_db --user=mysql
Installing MySQL system tables...
090619  5:48:05 [Warning] Can't create test file /mysqldata/ubuntu.lower-test
090619  5:48:05 [Warning] Can't create test file /mysqldata/ubuntu.lower-test
ERROR: 1005  Can't create table 'db' (errno: 13)
090619  5:48:05 [ERROR] Aborting
090619  5:48:05 [Note] /usr/sbin/mysqld: Shutdown complete
Installation of system tables failed!


问题可能是权限, 可否比对一下你们的drbd设备上的mysql数据目录权限设置, 或者挂载drbd设备时的选项之类的

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
发表于 2009-06-19 10:11 |显示全部楼层
[root@DB1 proc]# ll / |grep data
drwxr-xr-x   8 mysql root 724992 06-19 09:38 data
[root@DB1 proc]# mount |grep data
/dev/drbd0 on /data type ext3 (rw)
[root@DB1 proc]# ll /data/
总计 1609140
-rw-rw---- 1 mysql root    10213789 06-19 10:14 DB1.err
-rw-rw---- 1 mysql mysql          6 06-18 12:33 DB1.pid
-rw-rw---- 1 mysql root        1276 06-17 10:37 DB2.err
-rw-rw---- 1 mysql mysql 1619001344 06-18 15:25 ibdata1
-rw-rw---- 1 mysql mysql    8388608 06-18 15:25 ib_logfile0
-rw-rw---- 1 mysql mysql    8388608 06-17 16:22 ib_logfile1
drwx------ 2 mysql root        4096 06-15 19:42 mysql
-rw-rw---- 1 mysql mysql        106 06-19 09:38 mysql-bin.000001
-rw-rw---- 1 mysql mysql         19 06-19 09:38 mysql-bin.index

论坛徽章:
0
发表于 2009-06-19 12:39 |显示全部楼层
odd....没看出什么问题啊, 基本是相同的, 只是/mysqldata中的mysql属组有一点不同, 你的是属组是root,而我这里显示是mysql


# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.0.11 (api:86/proto:86)
GIT-hash: b3fe2bdfd3b9f7c2f923186883eb9e2a0d3a5b1b build by phil@mescal, 2008-02-12 11:56:43
m:res    cs         st                 ds                 p  mounted   fstype
0:share  Connected  Primary/Secondary  UpToDate/UpToDate  C  /mysqldata  ext3


# mount |grep drbd0
/dev/drbd0 on /mysqldata type ext3 (rw)


#ls -la /mysqldata
drwxrwxr-x 3 mysql mysql 4096 Jun 19 06:08 .
drwxrwxr-x 3 mysql mysql 4096 Jun 19 06:07 ..
drwx------ 2 mysql mysql 4096 Jun 19 06:08 mysql

这里的mysql是做 mysql_install_db时 mysql自动建立的, 但是仅仅是一个空目录而已


开始怀疑是否与虚拟机有关(只是猜测, 没有依据,但是又解释不了现在出现的故障), 实在不行的话考虑在真实的机器上做一下实验看一下结果

"枫影谁用了" 你有什么建议吗?  或者drdb+mysql在某些细节上也许有些"trap" 需要小心对待, 而又是被我忽略了??

论坛徽章:
0
发表于 2009-06-29 10:09 |显示全部楼层
问题解决,
是由于虚拟机的关系, 具体还没来得及细查
换成物理机就工作正常, 所有的配置文件及操作均不需要改变

谢谢

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
发表于 2009-06-29 12:29 |显示全部楼层
原帖由 black_fire 于 2009-6-29 10:09 发表
问题解决,
是由于虚拟机的关系, 具体还没来得及细查
换成物理机就工作正常, 所有的配置文件及操作均不需要改变

谢谢



晕4
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP