更改MySQL数据库存储路径和端口

      虽然生产环境中使用的mysql全部用源码包的方式进行的安装,不过平进测试mysql时难免直接用yum -y install mysql mysql-server mysql-devel的方式进行安装。而如果测试数据比较大,而根分区给的又不是很多的情况下,就要更改数据目录。而一台主机上运行多个mysql时又不免要遇到更改mysql的默认端口号的问题。



假设我们以更改到/opt/data目录下为倒:



1、opt目录下建立data目录
mkdir /opt/data

2、停掉MySQL服务进程

mysqladmin -u root -p shutdown

3、把/var/lib/mysql整个目录移到/opt/data

mv /var/lib/mysql /opt/data/

这样就把MySQL的数据文档移动到了/opt/data/mysql下 。

<span style="white-space:nowrap;">4、my.cnf文档配置</span>



<span style="white-space:nowrap;">默认安装时my.cnf在 /etc目录下,如果是源码包安装时,也有可能没将配置文件放在这个目录下。这时我们需要复制一份</span>



<span style="white-space:nowrap;"> </span>
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

我这里是rpm包安装的默认位置为例。

<span style="white-space:nowrap;"><span style="white-space:nowrap;">5、编辑MySQL的配置文档/etc/my.cnf</span></span>



<span style="white-space:nowrap;"><span style="white-space:nowrap;">为确保MySQL能够正常工作,需要指明mysql.sock文档的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/opt/mysql/mysql.sock 。操作如下:</span></span>



<span style="white-space:nowrap;"> </span>
vi /etc/ my.cnf
# The MySQL server
[mysqld]
port   = 3306
#socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
socket  = /opt/data/mysql/mysql.sock   (加上此行)

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

<span style="white-space:nowrap;"><span style="white-space:nowrap;">最后,需要修改MySQL启动脚本/etc/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成您现在的实际存放路径:opt/data/mysql。</span></span>



<span style="white-space:nowrap;">注:有些版本中还需要修改/usr/bin/mysqld_safe文件中的目录位置。</span>



<span style="white-space:nowrap;"><span style="white-space:nowrap;">最后 做一个mysql.sock 链接:</span><br />

ln -s /opt/data/mysql/mysql.sock /var/lib/mysql/mysql.sock
客户端连接时需要到,也可以在my.cnf中配置,这里省略这一步。

<span style="white-space:nowrap;"><span style="white-space:nowrap;">7、重新启动MySQL服务</span></span>



<span style="white-space:nowrap;"> </span>
chown -R mysql:mysql /opt/data/mysql/  ← 改变数据库的归属为mysql
chmod 700 /opt/data/mysql/test/  ← 改变数据库目录属性为700
chmod 660 /opt/data/mysql/test/*  ← 改变数据库中数据的属性为660

 /etc/init.d/mysql start

<span style="white-space:nowrap;">更改端口一样,仅需要修改/etc/my.cnf文件的中的port=3306的内容为新的端口号就行了。不过改完重启时有时候仍会无法启动。<br />

<span style="white-space:nowrap;"> </span>
MySQL Daemon failed to start.
Starting mysqld:                                           [FAILED]

查看日志为:

[ERROR] Can't start server: Bind on TCP/IP port: Permission denied

此时只需要运行下面的命令即可:

<span style="white-space:nowrap;"> </span>
setenforce 0

该问题是因为selinux防火墙的权限问题造成的。

<br />

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注