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'

时间: 2024-11-08 21:06:59

Ubuntu修改MySQL默认数据库目录的相关文章

xampp修改mysql默认密码的方法_Mysql

在这里介绍xampp修改mysql默认密码的大概过程是先利用xampp的phpmyadmin进入修改mysql密码,修改之后我们再修改xampp中phpmyadmin的密码,这样就完整的修改mysql默认密码了. 大概过程 在mysql里设密码打开IE输入网址localhostphpadmin之后,点用户看到有root用户,往下拉,找到修改密码的地方,输入密码,进行执行操作,最后再去到在你的xampp安装目录下找到phpadmin文件夹,打开找到config.inc.php文件之后,打开找关于m

修改mysql默认字符集的两种方法详细解析_Mysql

(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,如 default-character-set = utf8    character_set_server = utf8 修改完后,重启mysql的服务,service mysql restart使用 mysql> SHOW VARIABLES LIKE 'character%';查看,发现数据库编码均已改成utf8 复制代码 代码如下: +--------------------------+-----------

Windows7下修改程序默认安装目录

  在Windows系统中,默认程序安装路径是"C:Program Files",要安装的软件多了会导致C盘臃肿不堪,但是每次安装程序的时候手动选择安装目录又觉得十分麻烦.关于修改Windows默认安装目录的文章网上有很多,不过都是针对XP系统的,很多使用WIN7系统的朋友直接照搬过来,结果运行Win7自带的一些程序或新安装程序时会直接报错,说找不到路径等. 下面介绍下Windows7下修改程序默认安装目录的方法 1.打开注册表编辑器 在开始菜单搜索框输入 "regedit&

Linux使用MySQL忘记root密码及修改MySQL默认编码_Linux

概述: 本文不再对MySQL的语法进行讲解和说明,想了解或熟悉的朋友请自行百度或Google学习.本文主要是针对MySQL除语法之外的总结,希望能够也能帮助到你. 1.CentOS6.x下MySQL忘记root密码解决方法 Ⅰ. 修改MySQL的登录设置  # vim /etc/my.cnf 在[mysqld]段中加上一句:skip-grant-tables Ⅱ. 重启服务 # service mysqld restart Ⅲ. 登录Mysql,修改密码信息# mysql mysql> USE

MySQL默认数据库介绍

MySQL默认数据库介绍 大家在学习MySQL时,安装后都会发现里边已经自带了几个默认的数据库,我装的MySQL5.5里边自带六个数据库 网上查了一些资料对这几个数据库的功能做一下学习. 1.information_schema 这个库中有很多的表 information_schema数据库表说明: SCHEMATA表:提供了当前mysql实例中所有数据库的信息.是show databases的结果取之此表. TABLES表:提供了关于数据库中的表的信息(包括视图).详细表述了某个表属于哪个sc

mac下修改mysql默认字符集为utf8

1.首先检查默认安装的字符集 [html] view plain copy  print? mysql> show variables like '%char%';   +--------------------------+--------------------------------------------------------+   | Variable_name            | Value                                           

修改mysql默认最大连接数示例

  mysql数据库默认的最大连接数据为100,如果我们要修改可以利用两种方式,一种是set GLOBAL max_connections命令执行,另一种是 打开MySQL配置文件 my.ini 或 my.cnf查找 max_connections=进行修改,下面我们来看看. 查看mysql最大连接数据  代码如下   show variables like '%max_connections%' 修改方法: 进入mysql终端,  代码如下   mysql > set GLOBAL max_c

Ubuntu配置Mysql主从数据库_Mysql

本次环境:虚拟机下 服务器:Ubuntu 14.04 LTS 数据库: 5.5.37 端口:3306 主IP:192.168.63.133 从IP:192.168.63.134 授权账号: user:suxh password:111111 好了交代完环境:我们直接配置: 第一步:主从两台服务器要有同样的数据库(需要同步的)这里用的是backup 数据库(不多说了,在同步开始前,把主库的复制一份到从库就行了) 第二步配置主(master)数据库 编辑/etc/my.cnf 主要是开启二进制日志

修改MySQL的数据库引擎为INNODB的方法_Mysql

对于MySQL数据库,如果你要使用事务以及行级锁就必须使用INNODB引擎.如果你要使用全文索引,那必须使用myisam. INNODB的实用性,安全性,稳定性更高但是效率比MYISAM稍差,但是有的功能是MYISAM没有的.修改MySQL的引擎为INNODB,可以使用外键,事务等功能,性能高.本文主要介绍如何修改MySQL数据库引擎为INNODB,接下来我们开始介绍. 首先修改my.ini,在[mysqld]下加上: default-storage-engine=INNODB 其中的蓝色字体是