从源码安装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的文件,特别是/etc/mysql文件夹,它是mysql默认的全局配置文件存放的位置,它的存在会导致从原码安装的mysql在启动时会从该位置读取l配置文件,进而总是不能正确定位basedir.


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

1. 删除 /etc/mysql文件夹 sudo rm -fr /etc/mysql

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

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

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


安装过程中的一些经验:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CentOS 7 安装 MySQL 的步骤如下: 1.安装必要的依赖项 首先需要安装一些必要的依赖项,包括 gcc、cmake、make、bison、ncurses-devel 和 zlib-devel。可以使用以下命令安装它们: ``` sudo yum install gcc cmake make bison ncurses-devel zlib-devel -y ``` 2.下载 MySQL 代码 在安装 MySQL 之前,需要先下载 MySQL代码。可以从 MySQL 官网下载最新版本的代码。下载后,可以将其解压到 /usr/local/src 目录下: ``` cd /usr/local/src sudo wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.25.tar.gz sudo tar -xzf mysql-8.0.25.tar.gz ``` 3.编译和安装 MySQL 进入解压后的代码目录,运行以下命令进行编译和安装: ``` cd mysql-8.0.25 sudo cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_BOOST=/usr/local/src/mysql-8.0.25/boost sudo make && sudo make install ``` 4.创建 MySQL 用户和组 为 MySQL 创建一个专用的用户和组,使其能够运行 MySQL 服务: ``` sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql ``` 5.初始化 MySQL 数据库 运行以下命令来初始化 MySQL 数据库,并设置 root 用户密码: ``` sudo mkdir /usr/local/mysql/data sudo chown mysql:mysql /usr/local/mysql/data sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data sudo /usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data sudo systemctl start mysqld sudo systemctl enable mysqld sudo systemctl status mysqld ``` 6.登录 MySQL 使用以下命令登录 MySQL: ``` sudo /usr/local/mysql/bin/mysql -u root -p ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值