当前位置: 首页 > 图文教程 > 数据库 > MYSQL > 在Ubuntu下的MySQL数据库如何更改存储位置

MYSQL
mysql 常用数据库语句 小练习
MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)问题的解决
mysql 字符集的系统变量说明
MySQL 在触发器里中断记录的插入或更新?
将MySQL数据库移植为PostgreSQL
mysql 操作总结 INSERT和REPLACE
linux mysql忘记密码的多种解决或Access denied for user ''root''@''localhost''
运用mysqldump 工具时需要注意的问题
mysql 优化日记
MySQL 字符串函数大全
mysql 截取指定的两个字符串之间的内容
MySQL 备份还原数据库批处理
mysql 数据库中my.ini的优化 2G内存针对站多 抗压型的设置
Mysql 数字类型转换函数
mysql 动态生成测试数据
mysql 显示SQL语句执行时间的代码
mysql 设置查询缓存
MYSQL explain 执行计划
MySQL 有输入输出参数的存储过程实例
巧用mysql提示符prompt清晰管理数据库的方法

MYSQL 中的 在Ubuntu下的MySQL数据库如何更改存储位置


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 99 ::
收藏到网摘: n/a

 MySQL数据库的文件结构是怎么样的呢,对于这样子创建的数据库命令:


  CREATE DATABASE mysqldb

  在默认的数据库存储位置下就会有个文件夹mysqldb。要操作数据库首先得停止数据库进程


  $sudo /etc/init.d/mysql stop

  本文以转移到/home/mysql这个位置为例,下面命令将原有数据库转移到新位置:


  $sudo cp –R –p /var/lib/mysql /home/mysql

  编辑MySQL配置文件:


  $gksu gedit /etc/mysql/my.cnf

  在 gedit中找到datadir这一行,将后面等于号之后的内容更改为/home/mysql然后保存退出。自Ubuntu 7.10开始,

  Ubuntu就开始使用一种安全软件叫做AppArmor,这个安全软件会在你的文件系统中创建一个允许应用程序访问的区(专业术语:应 用程序访问控制)。如果不为MySQL修改AppArmor配置文件,永远也无法为新设置的数据库存储位置启动

  数据库服务。配置AppArmor:


  $sudo nano /etc/apparmor.d/usr.sbin.mysqld

  在gedit中找到/var/lib/mysql/这两行,注释掉这两行,在这两行前分别添加一个符号“#”即可注释,在这两行之前或

  之后加上下面内容:


  /home/mysql/ r, 

/home/mysql/** rwk,

保存后退出,执行命令:


  $sudo /etc/init.d/apparmor reload

  返回Reloading AppArmor profiles : done.即可以重启MySQL服务:


  $sudo /etc/init.d/mysql start

  至此MySQL数据库存储位置就更改完毕了。

  FAQ:

  Q:当我运行$sudo /etc/init.d/apparmor reload却返回信息


  Skipping profile /etc/apparmor.d/usr.sbin.mysqld~ 

: Warning.

  并且也无法启动MySQL服务,怎么办呢?

  A:出 现这个问题可能是因为你使用了$sudo gedit或$gksu gedit这样子的命令来编辑usr.sbin.mysqld这个配置文件的,这两个图形界面文本编辑器会在相同位置生成一个 usr.sbin.mysqld~的文件,从而影响了AppArmor读取配置文件,出现这个问题先删除这个usr.sbin.mysqld~文件:


  $sudo rm /etc/apparmor.d/usr.sbin.mysqld~

  然后使用$sudo nano这个终端文本编辑器来编辑配置文件即可。