开发者社区> 技术小阿哥> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Ubuntu修改MySQL默认数据库目录

简介:
+关注继续查看

在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

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

1
2
3
4
5
6
7
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

5、重新初始化数据库

# sudo mysql_install_db

6、启动MySQL

# 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)

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

1
2
3
4
5
6
7
8
9
# vi /etc/mysql/debian.cnf 
[client]
host     = localhost
user     = debian-sys-maint
password = mTHbclKSNuiyoifR
socket   = /var/run/mysqld/mysqld.sock
......
mysql> grant all on *.* to 'debian-sys-maint'@'localhost' identified by 'mTHbclKSNuiyoifR';
# sudo /etc/init.d/mysql restart  #再重新启动就没有报错了

7、设置数据库ROOT登陆密码

# mysqladmin -uroot password '123456'



本文转自 李振良OK 51CTO博客,原文链接:http://blog.51cto.com/lizhenliang/1612778,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Ubuntu上使用docker安装mysql
Ubuntu上使用docker安装mysql1.docker仓库搜索mysql docker search mysql /images/img/20220308164142.png 2.docker仓库拉取mysql8.0镜像 docker pull mysql:8.0 docker pull mysql #拉取最新版本的mysql 3.查看本地镜像是否安装成功 docker images mysql:8.0 /images/img/20220308164232.png 4.安装运行mysql8.0容器 docker run -p 3307:3306 --name mysql -e MYSQL
0 0
Linux:Ubuntu安装jdk、tomcat、mysql,以及实现Tomcat开机自启动
Linux:Ubuntu安装jdk、tomcat、mysql,以及实现Tomcat开机自启动
0 0
在UBUNTU上开发MYSQL
在UBUNTU上开发MYSQL
0 0
MySQL Windows、Ubuntu安装及卸载教程
MySQL Windows、Ubuntu安装及卸载教程
0 0
Ubuntu下MySQL无法启动和访问的问题解决与修复(二)
Ubuntu下MySQL无法启动和访问的问题解决与修复
0 0
Ubuntu下MySQL无法启动和访问的问题解决与修复(一)
Ubuntu下MySQL无法启动和访问的问题解决与修复
0 0
Ubuntu下MySQL无法启动和访问的问题解决与修复
Ubuntu下MySQL无法启动和访问的问题解决与修复
0 0
远程在线给Ubuntu安装MySQL,Navicat远程连接数据库(详细过程和避坑事项)
这里使用XShell连接服务器,设置主机ip,ssh远程连接即可。如此可用命令去操纵服务器。
0 0
ubuntu azkaban4.0.0链接mysql(5.1/8.0)数据库配置
ubuntu azkaban4.0.0链接mysql(5.1/8.0)数据库配置
0 0
Ubuntu 18.04 修改Mysql默认数据存储路径
Ubuntu 18.04 修改Mysql默认数据存储路径
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
让 MySQL 原生分布式触手可及
立即下载
好的 MySQL 兼容可以做到什么程度
立即下载
云数据库RDS MySQL从入门到高阶
立即下载