zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Ubuntu修改MySQL默认数据库目录

mysql数据库Ubuntu 修改 目录 默认
2023-09-14 08:59:44 时间

    在CentOS修改MySQL数据库目录很简单,在my.cnf更改datadir路径后,启动即可,但在Ubuntu系统初次更改,可就上火了,因为Ubuntu有个AppArmor,是一个Linux系统安全应用程序,类似于Selinux,AppArmor默认安全策略定义个别应用程序可以访问系统资源和各自的特权,如果不设置服务的执行程序,即使你改了属主属组并0777权限,也是对服务起不到作用。网上大多数资料都说是权限问题,的确目录属性必须要改的,但不能解决问题。操作很简单,留个备忘,请看步骤!

1、停掉MySQL

# sudo /etc/init.d/mysql stop

2、修改MySQL数据库默认存放位置

# vi /etc/mysql/my.cnf

将datadir         = /var/lib/mysql

修改为datadir         = /data0/mysql

3、设置新数据库目录属主属组为mysql

# sudo chown mysql:mysql /data0/mysql

4、修改Ubuntu系统安全设置

# vi /etc/apparmor.d/usr.sbin.mysqld

将/var/lib/mysql/ r,

/var/lib/mysql/** rwk,

修改为现在目录

/data0/mysql/ r,

/data0/mysql/** rwk,

然后重启AppArmor:sudo /etc/init.d/apparmor restart

注:如果不修改,就会报如下错:


150208 10:48:47  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. 150208 10:48:47 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

# sudo /etc/init.d/mysql start

注:如果出现以下报错,debian-sys-maint是对mysql简单维护用的,这个用户信息记录在/etc/mysql/debian.cnf,因为mysql安装完成后已经生成密码,现在这个生成的和之前的不同,自然登陆不到mysql,故此报错。

ERROR 1045 (28000): Access denied for user debian-sys-maint@localhost (using password: YES)

解决如下,先查看原来密码,然后修改为现在的密码:


mysql  grant all on *.* to debian-sys-maint@localhost identified by mTHbclKSNuiyoifR; # sudo /etc/init.d/mysql restart  #再重新启动就没有报错了
MySQL 日志之 binlog 格式 → 关于 MySQL 默认隔离级别的探讨 背景问题 再讲 binlog 之前,我们先来回顾下主流关系型数据库的默认隔离级别,是默认隔离级别,不是事务有哪几种隔离级别,别会错题意了 1、Oracle、SQL Server 的默认隔离级别是什么,MySQL 的呢 ? 2、为什么 MySQL 的默认隔离级别是 RR ?
李振良 6年互联网运维经验,擅长Linux,Python,Docker,MySQL,运维自动化等技术领域。