zoukankan      html  css  js  c++  java
  • mysql 5.7更改数据库的数据存储位置

    1.修改mysql数据存放的目录

    要修改两个地方,其一是修改/etc/my.cnf文件中的datadir。默认情况下:

    datadir=/var/lib/mysql

    因为我的/data/目录比较大,所以将其改为:

    datadir=/data/mysql/

    还要修改/etc/init.d/mysqld文件,将datadir=”$result”改为:

    datadir=”/data/mysql”
    

    2.停止mysql服务

    service mysql stop

    3.创建新的数据存放目录

    mkdir /data/mysql

    4.将数据移动到新的数据库存放目录里面

    mv /usr/local/mysql/data/* /data/mysql

    针对MyISAM引擎, 数据文件以”*.frm”,”*.MYD”,”*.MYI”三个文件存储于”/var/lib/mysql”目录下的对应数据库文件夹中。直接将这些文件移动到新的数据存放目录里面,就可以。

    针对innoDB引擎,数据则存储在”$innodb_data_home_dir” 的ibdata1文件中(一般情况),结构文件存在于table_name.frm中。

    5.修改mysql数据库目录权限以及配置文件

     
    chown mysql:mysql -R /data/mysql/

    6.修改socket

    在两个地方修改socket,/etc/my.cnf

    socket=/data/mysql/mysql.sock
    

    创建一个连接文件到/var/lib/mysql/mysql.sock

    ln -s /data/mysql/mysql.sock /var/lib/mysql/mysql.sock

    7.重启mysql服务

    service mysql restart

    读写:

    1
    ERROR 1146 (42S02): Table ** doesn't exist

    创建表:

    1
    ERROR 1005 (HY000): Can't create table ‘runoob_tbl' (errno: 13)

    解决办法:

    在/data/mysql目录下,删掉ib_logfile*文件,这样innoDB引擎的表就正常了。

    再执行

    mysql> REPAIR TABLE ***;
  • 相关阅读:
    从零开始PHP学习
    从零开始PHP学习
    从零开始PHP学习
    从零开始PHP学习
    从零开始PHP学习
    [暂停一天]从零开始PHP学习
    [Laravel 5] 表单验证 Form Requests and Controller Validation
    JQuery 在$(window).load() 事件中 不运行 $(window).resize()
    JS计算两个日期相差几天
    python 学习之Windows 下的编码处理!
  • 原文地址:https://www.cnblogs.com/heitaoq/p/8798241.html
Copyright © 2011-2022 走看看