修改mysql默认数据库目录

在搞blast2go本地化的时候,发现我ubuntu系统默认将mysql安装在根目录下的,因而mysql的默认数据库路径也就是/var/lib/mysql,在我导入大文件时就出问题了,根目录满了。因此我需要将mysql的默认数据库目录改到我的home目录下

在网上查了好久,终于确定一篇文章,讲的简单明了,而且还完美的解决了问题,附上地址:http://lizhenliang.blog.51cto.com/7876557/1612778李振良OK 的BLOG

简单的在这里说下流程:

  1. 我先在home目录下新建一个目录

    mkdir /home/anlan/mysql
    
  2. 停止mysql

    sudo service mysql stop
    
  3. 修改mysql默认的数据库存放路径

    vim /etc/mysql/my.cnf
    #datadir = /var/lib/mysql  #将文件中的这行#掉
    datadir = /home/anlan/mysql #改为新的路径
    
  4. 设置新数据库目录属主属组为mysql,这步照做就行

    sudo chown mysql:mysql /home/anlan/mysql
    
  5. 修改Ubuntu系统安全设置,这步也是照做即可

    vim /etc/apparmor.d/usr.sbin.mysqld
    #/var/lib/mysql/ r,   #将文件中的这行#掉
    #/var/lib/mysql/** rwk,  #将文件中的这行#掉
    /home/anlan/mysql/ r,    #改为新的路径
    /home/anlan/mysql/** rwk,** rwk, #改为新的路径
    
  6. 重启AppArmor,如果报错,应该就是apparmor没安装,sudo apt-get install apparmor 安装一下即可

    sudo /etc/init.d/apparmor restart
    
  7. 初始化数据库,其他教程没有这步,也没尝试过是不是必须的

    sudo mysql_install_db
    
  8. 重新启动mysql

    sudo service mysql start
    
  9. 一般当你输入mysql -u root -p后,会发现还是有报错:ERROR 1045 (28000): Access denied for user ‘debian-sys-maint’@’localhost’ (using password: YES),这个原因简单的说就是修改后又重新生成的密码跟你mysql安装时设置的密码不一致了,所以要重新设置下密码

    mysqladmin -uroot password 'your password'
    

: 并且由于多次尝试,导致我的mysql删了又重装,当中出现一个明显的问题,就是要将mysql删干净才能在安装时不会报错,因此需要经过下面几步,按照顺序来:

sudo rm /var/lib/mysql/ -R
sudo rm /etc/mysql/ -R
sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor

反正跟mysql有关的都要删除,似乎是这样的。。。。