分享

Linux下更改MySQL的数据库目录

 CevenCheng 2012-06-07

Linux下更改MySQL的数据库目录

今天要在一台双线云主机上安装 MySQL 数据库,操作系统为 CentOS 5.8,因为该机安装的时候 / 分区只有20G,还有一个 300G 的扩展磁盘分区挂载在 /disk ,因此需要将 MySQL 的数据库目录设置在 /disk/mysql ,下面是具体操作步骤。

 

操作系统:CentOS 5.8

MySQL 版本:5.5.25

目标:更改MySQL数据库目录

源目录:/var/lib/mysql   (系统默认目录)

目标目录:/disk/mysql

 

1. 安装 MySQL 数据库软件

如果已经有,则跳过。MySQL 最新版本为 5.5.25

 

-bash-3.2# rpm -qa | grep MySQL

-bash-3.2# mkdir -p setup 
-bash-3.2# cd setup/ 
-bash-3.2# wget "http://dev./get/Downloads/MySQL-5.5/MySQL-client-5.5.25-1.rhel5.i386.rpm/from/http://mirror.csclub./mysql/" 
--2012-06-06 16:48:29--  http://dev./get/Downloads/MySQL-5.5/MySQL-client-5.5.25-1.rhel5.i386.rpm/from/http://mirror.csclub./mysql/
2012-06-06 16:49:52 (216 KB/s) - `MySQL-client-5.5.25-1.rhel5.i386.rpm' saved [17860149/17860149]

-bash-3.2# wget "http://dev./get/Downloads/MySQL-5.5/MySQL-server-5.5.25-1.rhel5.i386.rpm/from/http://mysql.mirror./"
--2012-06-06 16:50:01--  http://dev./get/Downloads/MySQL-5.5/MySQL-server-5.5.25-1.rhel5.i386.rpm/from/http://mysql.mirror./

 

2012-06-06 16:57:11 (132 KB/s) - `MySQL-server-5.5.25-1.rhel5.i386.rpm' saved [54564826/54564826]

 

-bash-3.2# rpm -ivh MySQL-server-5.5.25-1.rhel5.i386.rpm MySQL-client-5.5.25-1.rhel5.i386.rpm 
error: Failed dependencies:
        libaio.so.1 is needed by MySQL-server-5.5.25-1.rhel5.i386
        libaio.so.1(LIBAIO_0.1) is needed by MySQL-server-5.5.25-1.rhel5.i386
        libaio.so.1(LIBAIO_0.4) is needed by MySQL-server-5.5.25-1.rhel5.i386

-bash-3.2# yum install -y libaio

Installed:
  libaio.i386 0:0.3.106-5                                                                                                                                              

Complete!
-bash-3.2# rpm -ivh MySQL-server-5.5.25-1.rhel5.i386.rpm MySQL-client-5.5.25-1.rhel5.i386.rpm 
Preparing...                ########################################### [100%]
   1:MySQL-client           ########################################### [ 50%]
   2:MySQL-server           ########################################### [100%]

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h localhost password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

Please report any problems with the /usr/bin/mysqlbug script!

-bash-3.2#

 

2. ·停止 MySQL 服务器

如果MySQL服务器正在运行,应该先将其停止。

我因为刚安装好,所以并未运行。

-bash-3.2# service mysql stop 
 ERROR! MySQL server PID file could not be found!
-bash-3.2# service mysql status 
 ERROR! MySQL is not running

 

 

3. 移动数据库目录到目标位置

-bash-3.2# mv /var/lib/mysql /disk

 

-bash-3.2# ls /disk/ 
logs  lost+found  mysql
-bash-3.2#

 

4. 创建或修改配置文件 /etc/my.cnf

 

[client]
default-character-set=gbk
socket=/disk/mysql/mysql.sock 

[mysqld]
character-set-server=gbk
socket=/disk/mysql/mysql.sock

 

 

5. 修改 MySQL 启动脚本 /etc/init.d/mysql

 

原内容

# If you change base dir, you must also change datadir. These may get
# overwritten by settings in the MySQL configuration files.

basedir=
datadir=

 

 

修改后的内容

# If you change base dir, you must also change datadir. These may get
# overwritten by settings in the MySQL configuration files.

basedir=
datadir=/disk/mysql

 

6. 启动 MySQL 服务器

-bash-3.2# service mysql start  
Starting MySQL.. SUCCESS! 
-bash-3.2# service mysql status 
 SUCCESS! MySQL running (4874)
-bash-3.2#

 

7. 测试 MySQL 访问是否正常

-bash-3.2# mysql -p 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 188
Server version: 5.5.25 MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

 

O.K.!

 

本文链接:http://codingstandards./blog/1553945


END.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多