CentOS6.5 编译安装MySQL

此文分为两部分,前面是编译与安装,后面是MySQL配置。


编译与安装

准备工作

  • 下载MySQL源码包
    本文下载的是 mysql-5.6.43.tar.gz
  • 卸载系统安装过的MySQL Server
    当然前提是你曾经在这台机器安装过MySQL,如果不确定是否安装过,那么可以执行
    rpm -qa | grep mysql
    如果有,则卸载
    rpm -e --nodeps mysql
  • 安装编译代码所需要的包
    yum -y install make gcc-c++ cmake bison-devel ncurses-devel

在顺利地执行完准备工作后,即可开始正式工作了。

1. 解压mysql源码包

tar -zxvf mysql-5.6.43.tar.gz -C /opt/

2. 编译源码

  1. 进入源码包解压处
    cd /opt/mysql-5.6.43

  2. 执行以下的一条命令
    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_MEMORY_STORAG_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

本人此步骤失败,以为是gcc问题,所以安装了devtoolset-2,最后发现改变数据库版本更容易解决问题,因为我一开始使用的mysql8.0.14.tar.gz,所以中途才决定使用mysql-5.6.43.tar.gz

  1. 编译与安装
    make && make install

make时,又发现Error: expecting string instruction after `rep’错误,好像是由于之前安装了devtoolset-2,升级了gcc,故安装devtoolset-2-binutils-2.23.52.0.1-10.el6.i686

  1. 等待完毕


配置mysql

1. 创建mysql账户

  1. 查看是否有mysql用户和用户组

    • 查看用户列表
      cat /etc/passwd | grep mysql

    • 查看用户组列表
      cat /etc/group | grep mysql

  2. 如果没有则创建

    • 创建mysql组
      groupadd mysql
    • 创建mysql用户
      useradd -g mysql mysql

2. 设置权限

将刚才安装的mysql文件权限赋予mysql用户和mysql用户组

chown -R mysql:mysql /usr/local/mysql

3. 初始化配置

  1. 进入安装路径
    cd /usr/local/mysql
  2. 运行以下一条命令
    scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

4. 启动mysql

  1. 进入安装路径
    cd /usr/local/mysql

  2. 复制配置文件
    cp support-files/mysql.server /etc/init.d/mysql

  3. 设置自启动
    chkconfig mysql on

  4. 开启mysql服务
    service mysql start

很有可能开启mysql服务失败,我也是失败了,我遇到了下面的错误

Starting MySQL.Logging to ‘/usr/local/mysql/data/localhost.localdomain.err’.
190126 21:54:08 mysqld_safe Directory ‘/var/lib/mysql’ for UNIX socket file don’t exists.
The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).

此处存在两个错误,那我们先解决先出现的问题,因为不确定是否是由于先出现的错误导致了后面的错误,先出现的错误如下

mysqld_safe Directory ‘/var/lib/mysql’ for UNIX socket file don’t exists.

  • 缺少目录而已,那我们给他,执行以下命令创建/var/lib/mysql 目录
    mkdir /var/lib/mysql

再次尝试执行
service mysql start

还是失败,不过只有一个错误了

Starting MySQL…The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid). [失败]

查看日志
cat /usr/local/mysql/data/localhost.localdomain.err
发现错误

2019-01-26 22:09:12 23053 [ERROR] Can’t start server : Bind on unix socket: Permission denied
2019-01-26 22:09:12 23053 [ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
2019-01-26 22:09:12 23053 [ERROR] Aborting

网上查阅资料后,可能是由于mysql服务无法在/var/lib/mysql/目录下创建文件,执行以下命令
chmod 777 /var/lib/mysql
把/var/lib/mysql目录粗暴地暴露出来


再次尝试执行
service mysql start
成功

5. 设置mysql密码

  1. 进如mysql安装目录
    cd /usr/local/mysql/bin

  2. 运行mysql
    ./mysql -u root

  3. 设置密码
    mysql> SET PASSWORD = PASSWORD(‘你设置的密码’);

  4. 登录
    退出刚刚无密码登录的mysql
    exit

    使用密码登录mysql
    ./mysql -u root -p

6. 安装完毕

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值