csatblogspotdotcom

Sunday, April 3, 2016

Linux安装MySQL遇到的问题

Linux(Ubuntu 14.04 VMware虚拟机,host为win7 64 SP1)安装MySQL,sudo apt-get install mysql-server,安装MySQL server且自带client,接下来想将datadir更改为host的一个单独的ntfs分区中,问题来了: 参考:http://blog.fens.me/linux-mysql-install/,虽然可更改配置文件/etc/mysql/my.cnf指定datadir的位置,但这里只是一处,使用中还会有其他地方的配置也需要做相应修改,于是做一个软链接到目标目录“sudo ln -s 目标 /var/lib/mysql”,同时修改/etc/apparmor.d/tunables/alias添加“alias /var/lib/mysql/ -> 目标目录”,重启apparmor:“sudo /etc/init.d/apparmor restart”,重启MySQL,起不来,查看“/var/log/mysql/error.log”,其中出现:“[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.”以及“[ERROR] Fatal error: Can't open and lock privilege tables: Table 'host' is read only”,于是尝试修改目标目录及其中文件的属性,发现ntfs挂载后还不能改,于是修改/etc/fstab,目录的dmask和文件的fmask分别改为000和111,用户uid和组gid也修改为MySQL对应的编号(通过id mysql查询),重新挂载后问题依旧,而且不管是改为目标盘的子目录还是直接改为使用目标盘根目录,都一样,此外还尝试修改过apparmor配置“/etc/apparmor.d/usr.sbin.mysqld”,添加"目标目录 r,"和"目标目录/** rwk,",重启apparmor依旧,“sudo /etc/init.d/apparmor stop”(此命令仅清除apparmor缓存)、“sudo /etc/init.d/apparmor teardown”(暂停apparmor),问题依旧,放弃做软链接的方法,尝试更改/etc/mysql/my.cnf中的datadir也不行,总是提示同样的error,尝试重新安装db到指定目录:“sudo mysql_install_db --user=mysql --datadir=目标目录”提示没修改权限,“sudo mysql_install_db --user=mysql --datadir=/var/lib/mysql/”倒是可以,删了原来复制过去的目录,重新复制/var/lib/mysql/也一样,最后想到一个办法,就让ntfs直接挂载在/var/lib/mysql/,复制mysql目录下的所有文件"sudo cp -rf /var/lib/mysql.bak/. /var/lib/mysql",注意mysql.bak后面的点,如果没有就直接复制目录到/var/lib/mysql如果有就是复制目录里面的内容到/var/lib/mysql,打开apparmor,启动MySQL,终于OK。

Labels: , , ,

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home