从源码安装MySQL无法定位basedir问题的解决方法

在Mysql提供的多种安装方法中,我本人还是非常喜欢从源码进行安装的,因为从源码进行安装更加灵活,能避免一些因为本机差异而导致一些小问题。比如,一个最为常见的问题就是从原码安装可以避免安装完成后无法定位basedir的问题,导致出现一些像Can't find messagefile '/usr/share/errmsg.sys'之类的问题,使得在启动mysqld的时候必需要手动设定--basedir参数。

但是在最近一次的安装过程中,我使用源码方式安装也遇到了这个问题。我的安装位置为:/usr/local/mysql,即使我在安装过程中显式地设置了 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql参数依然无效。经过反复的排查发现,原来系统中已经安装过mysql,在/var/lib/mysql和/etc目录下都发现了mysql的文件,这导致我从原码安装的mysql在启动时受到了某些已存在的mysql配置文件的干扰,总是不能正确定位basedir.

问题找到了,接下来的工作就是全面的删除旧有mysql文件:

1. 使用 sudo find /var /ext | grep mysql 全面地检查已存在的mysql文件

2. 删除这些文件。注意,在搜索地结果中并非所有文件都是mysql的,这个需要你根据文件路径进行判断。

3.重新从源码安装mysql,一切恢复正常。

安装过程中的一些经验:

1.从mysql的错误日志中得到更多的出错信息。

2.由于种种原因,你的系统中可能安装过mysql,因此在你安装之前最好先检查一下。

相关推荐