在MySQL二进制包中定死了basedir
目录为/usr/local/mysql
、datadir
目录为/usr/local/mysql/data
,如果想修改为其他目录,只在配置文件/etc/my.cnf中修改是不行的。
因为二进制包是由源码包编译而来,在编译过程中有-DCMAKE_INSTALL_PREFIX
、-DMYSQL_DATADIR
两个参数已经指定了目录,所以导致很目录在编译后被写死了。
这里需要在启动脚本/etc/init.d/mysqld
里重新定义basedir
和datadir
这两个目录。
比如我想把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