解决 MySQL 二进制包安装自定义目录

在MySQL二进制包中定死了basedir目录为/usr/local/mysqldatadir目录为/usr/local/mysql/data,如果想修改为其他目录,只在配置文件/etc/my.cnf中修改是不行的。

因为二进制包是由源码包编译而来,在编译过程中有-DCMAKE_INSTALL_PREFIX-DMYSQL_DATADIR两个参数已经指定了目录,所以导致很目录在编译后被写死了。

这里需要在启动脚本/etc/init.d/mysqld里重新定义basedirdatadir这两个目录。

比如我想把mysql二进制包放在/server/目录下,即为/server/mysql,那就要执行如下命令:

$ sed -i "s@^basedir=@basedir=/server/mysql@g" /etc/init.d/mysqld
$ sed -i "s@^datadir=@datadir=/server/mysql/data@g" /etc/init.d/mysqld
$ sed -i 's@^PATH.*@PATH="$PATH:/sbin:/usr/sbin:/bin:/usr/bin:$basedir/bin"@g' /etc/init.d/mysqld

修改完成后,重启服务,检查端口号:

$ /etc/init.d/mysqld start
Starting MySQL. SUCCESS!

$ netstat -tln | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN 
点赞

发表回复