mysql是我们目前常用到的一款开源免费的关系型数据库,linux中一般数据库的默认安装的路径在/var/lib/mysql,但是实际中我们在安装时常常就需要定制安装数据库路径,比如/mydata/mysql等。通常是一个单独的一块盘或者分区,这样有利于性能调优和保护数据安全,同时也方便进行维护。下面我就简单的记录下我更改mysql的datadir的路径步骤及过程:


1、停止数据服务

   sudo service mysql stop

2、更改自己定义的数据存放路径

   2.1、假设我们指定的数据库文件目录为/mydata/mysql,先创建目录 /mydata,执行sudo mkdir /mydata即可。

   2.2、修改mysql配置文件my.cnf:

       将datadir=/var/lib/mysql改为datadir=/mydata/mysql,

       随便加上innodb_file_per_table = 1,将innodb的表空间设置独立表空间

3、修改ubuntu中的安全设置

   sudo vim /etc/apparmor.d/usr.sbin.mysqld 在这个文件里面加入权限设定,将原来的

   /var/lib/mysql/ r,

   /var/lib/mysql/** rwk,

   更换成

   /data/mysql/ r,

   /data/mysql/** rwk,

4、初始化数据文件

   执行 sudo  /usr/bin/mysql_install_db --user=mysql --basedir=/usr --datadir=/mydata/mysql

   (或修改/usr/bin/mysql_install_db的ldata路径,将ldata="/var/lib/mysql"修改为ldata="/mydata/mysql")

5、启动mysql数据库服务

   sudo service mysql start

6、设置mysql数据库root密码

   mysqladmin -u root password ‘new-password’

   再创建个远程登录用户用以测试

   grant all on *.* to 'root'@'%' identifled by 'new-password';

   flush privileges;

7、在/etc/mysql/debian.cnf中找到你的debian-sys-maint用户密码,在mysql中重新建立这个用户.

此时我们会发现/db目录下出现mysql相关文件。如果我们新建数据库,其数据库文件也将出现在data目录下。表示我们修改的mysql数据库文件存储目录正确


   另外,还有一个偷懒的办法,先创建/mydata/mysql,然后软链接到/var/lib/mysql,再安装mysql-server,这样反而可以规避一些常见错误.....