[centos中更改默认mysql数据存放到数据库]Centos中更改默认mysql数据存放到数据盘

更新时间:2019-10-26    来源:nginx    手机版     字体:

【www.bbyears.com--nginx】

更改网站文件目录

如果你使用的是军哥的lnmp安装包,那默认的虚拟主机配置环境在 /usr/local/nginx/conf/vhost/ 目录里,修改:
vi /usr/local/nginx/conf/vhost/域名.conf

可以打开对应的虚拟主机配置,然后修改其中的网站目录。然后执行:

cp -a 老目录 新目录
chown www:www -R 新目录
更改MySQL数据存放目录

1.停掉mysql服务器:

/etc/init.d/mysql stop

2.下面新目录以/storage/mysql/ 为例,然后复制旧目录的数据库到新目录:

cp -R /usr/local/mysql/var/* /storage/mysql/

3.将新目录赋权为mysql用户组:
chown mysql:mysql -R /storage/mysql/

4.再修改配置文件:

vi /etc/my.cnf

查找mysql数据原有目录 /usr/local/mysql/var 修改为:

datadir = /storage/mysql
innodb_data_home_dir = /storage/mysql
innodb_log_group_home_dir = /storage/mysql
5.启动mysql:
/etc/init.d/mysql start

【补充说明】:阿里云、腾讯云服务器的硬盘是分两块,一个系统盘,一个数据盘,默认数据盘没有被挂载,所以除了系统和环境软件会安装在系统盘里,网站数据等也在系统盘里,数据盘却空置,没法利用其空间与区分系统和数据管理的好处。

这里做下说明,如何让网站数据存储在数据盘?
如果使用常用的LNmp一键安装包安装系统环境,网站根目录默认为: /home/wwwroot

有两个方法

1 . 直接挂载到目录/home/wwwroot
这个直接按阿里云官方的教程操作就可以了,只是需要建立目录 # mkdir /home/wwwroot
然后把 /mnt 替换为 /home/wwwroot 即可


LNMP更改默认mysql数据存放到数据盘

操作完上面这些,再安装LNmp一键包即可。
2 . 软件安装在系统盘,但网站数据放在数据盘
LNmp还是安装在系统盘里,阿里云服务器的数据盘挂载也按原来的操作
只要在添加网站时将默认目录修改成 /mnt 即可
这样的好处有两点:
1.  可以使用到更多的数据盘空间
2. 重装系统或环境不会影响网站数据,当然格式化数据盘也不会影响网站数据。
*另外也可以把数据盘再多分一个区,把其中一个分区挂载到数据库目录,比如/usr/local/mysql,方法同上。
*如果现在网站已经建在系统盘下了,还有办法迁移到数据盘吗?站点在home下,数据盘还可以加载到home目录吗?
当然可以,先将/home目录下的文件移动到其他目录,然后把数据盘挂载到/home,把数据移回即可

【如果之前安装lnmp的时候,没有安装mysql innodb数据库引擎,怎么办呢?】

1、如果你选择安装的是 mysql-5.5.37,那么只需要修改 /etc/my.cnf 配置文件即可
先看下 centos.sh 安装脚本是如何判断是否安装 innodb 的:
if [ $installinnodb = "y" ]; then
sed -i 's:#innodb:innodb:g' /etc/my.cnf
sed -i 's:/usr/local/mysql/data:/usr/local/mysql/var:g' /etc/my.cnf
else
sed '/skip-external-locking/i\default-storage-engine=MyISAM\nloose-skip-innodb' -i /etc/my.cnf
fi

 根据上面的命令,我们修改  /etc/my.cnf 即可:

a、找到 loose-skip-innodb 并注释掉:

default-storage-engine=MyISAM
#loose-skip-innodb
skip-external-locking

b、搜索 innodb 并取消innodb前面的注释:

# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = /usr/local/mysql/var
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/var
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
重启,mysql已经启用 innodb 引擎了:

LNMP更改默认mysql数据存放到数据盘

2、如果你不幸的选择了低版本的mysql 5.1.73并且没有选装 innodb,那么只有重新编译mysql了;当然你也可以升级mysql,在升级的时候,也可以安装innodb,但是一般不建议升级安装。

我们来看下centos.sh的原始编译的脚本:

cd mysql-5.1.73/
if [ $installinnodb = "y" ]; then
./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-assembler --with-mysqld-ldflags=-all-static --with-charset=utf8 --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobase
else
./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-assembler --with-mysqld-ldflags=-all-static --with-charset=utf8 --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile
fi
make && make install

需要我们重新编译mysql,注意,重编译会导致原先的数据丢失,请先备份:

cd mysql-5.1.73/
./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-assembler --with-mysqld-ldflags=-all-static --with-charset=utf8 --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobase
make && make install

注意,军哥的脚本里,这个参数:--enable-thread-safe-client出现了2次,请手动去掉一个

本文来源:http://www.bbyears.com/caozuoxitong/75458.html