跳转到主要内容
首页

用户帐户菜单

  • 登录

主导航

  • 首页
  • 小公司运营
  • 网站建设
  • 创业杂谈
  • 兼职赚钱
  • 小微企业信息化
  • 手册教程
    • 《大伟哥的Drupal 8建站指南》
    • 《通过JohnChow.Com在网上赚钱》
  • 关于

面包屑

  • 首页
  • Ubuntu 16.04 Linux系统下自定义MySQL数据库目录

Ubuntu 16.04 Linux系统下自定义MySQL数据库目录

By 大伟哥 | 2018-03-24,周六, 22:43

Ubuntu Server下安装MySQL数据库以后,默认的数据存放目录是/var/lib/mysql,正常使用是没有问题的,但是因为一些特别的原因,比如说为了方便重新安装系统,或者VPS服务器硬盘不够大需要另外购买并挂载数据盘,就需要我们修改默认的数据存放目录,比如说把数据库文件放在/home/user/data, 或者/mnt/data目录下。这里大伟哥说一下具体的步骤, 在Ubuntu Server 16.04 下测试通过。

  • 1. 停止MySQL服务。

    sudo service mysql stop

    或者

    sudo /etc/init.d/mysql stop
  • 2. 移动或复制数据库文件到新的目录,并把新的目录和文件的所有者和所属组仍旧指定为mysql:

    sudo mv /var/lib/mysql /home/daweibro/data/mysql

    或者

    sudo mkdir -p /home/daweibro/data/mysql
    sudo cp -R /var/lib/mysql/. /home/daweibro/data/mysql/
    sudo chown -R mysql:mysql /home/daweibro/data/mysql
    sudo mv /var/lib/mysql /var/lib/mysql-backup

    然后查看新的数据库目录本身以及里面所有文件/文件夹的属性,确保以上操作无误:

    sudo ll /home/david/data/mysql
    总用量 110640
    drwxrwxr-x 6 david david     4096 3月  24 12:15 ./
    drwxrwxr-x 4 david david     4096 3月  20 15:20 ../
    -rw-r----- 1 mysql mysql       56 3月  24 12:15 auto.cnf
    -rw-r--r-- 1 mysql mysql        0 3月  24 12:15 debian-5.7.flag
    -rw-r----- 1 mysql mysql      369 3月  24 12:15 ib_buffer_pool
    -rw-r----- 1 mysql mysql 12582912 3月  24 12:15 ibdata1
    -rw-r----- 1 mysql mysql 50331648 3月  24 12:15 ib_logfile0
    -rw-r----- 1 mysql mysql 50331648 3月  24 12:15 ib_logfile1
    drwxr-x--- 2 mysql mysql     4096 3月  24 12:15 mysql/
    drwxr-x--- 2 mysql mysql     4096 3月  24 12:15 performance_schema/
    drwxr-x--- 2 mysql mysql     4096 3月  24 12:15 phpmyadmin/
    drwxr-x--- 2 mysql mysql    12288 3月  24 12:15 sys/
  • 3.修改MySQL配置文件

    网上找到的很多博文帖子,都说是要修改的配置文件是/etc/mysql/my.cnf。没错,这是MySQL的配置文件,但是这个文件本身没有配置内容,还是又引用了两个目录下的其他配置文件,这两个目录分别是/etc/mysql/conf.d/和/etc/mysql/mysql.conf.d/。通过查看,大伟哥发现真正的配置内容其实是定义在/etc/mysql/mysql.conf.d/mysqld.cnf中,因此我们需要修改/etc/mysql/mysql.conf.d/mysqld.cnf文件,把里面的:

    datadir         = /var/lib/mysql

    修改成:

    datadir         = /home/daweibro/data/mysql
  • 4. 修改AppArmor安全策略,使得MySQL可以访问到新的数据库目录下的文件。

    修改文件/etc/apparmor.d/usr.sbin.mysqld,注释掉原来的文件夹,加入新的文件夹,如下面代码样式:

    # Allow data dir access
    #  /var/lib/mysql/ r,
    #  /var/lib/mysql/** rwk,
      /home/daweibro/data/mysql/ r,
      /home/daweibro/data/mysql/** rwk,
    

    修改文件/etc/apparmor.d/abstractions/mysql,注释掉原来的文件夹,加入新的文件夹,如下面代码样式:

    #   /var/lib/mysql{,d}/mysql{,d}.sock rw,
       /home/davidbro/data/mysql{,d}/mysql{,d}.sock rw,
  • 5. 重启AppArmor服务,重启MySQL服务。

    上述修改完成并保存后,需要重新启动重启AppArmor服务后才能正常启动MySQL服务:

    sudo /etc/init.d/apparmor restart
    [ ok ] Restarting apparmor (via systemctl): apparmor.service.
    sudo /etc/init.d/mysql start
    [ ok ] Starting mysql (via systemctl): mysql.service.

到这里,MySQL数据库的存放目录就由原来的/var/lib/mysql迁移到了现在的/home/daweibro/data/mysql了。如果启动过程中出现其他错误,可以查看系统日志,根据日志的提示进行相应的操作来解决问题。

小微企业信息化
网站建设
  • 612 阅读
MySQL
Ubuntu
Linux

添加新评论

此字段内容将保密,不会被其他人看见。
关于文本格式
  • 不允许使用HTML标签。
CAPTCHA
2 + 5 =
计算出这道简单的算术题并键入答案。例如、1+3,就输入 4。
发布评论前,请通过下面的验证,以免被当作垃圾评论机器人屏蔽。

搜索

沪ICP备17000093号-1

公安备案沪公网安备 31011402008254号

© 2016-2022 大伟哥博客版权所有