MySQL的源码编译与配置

MySQL的源码编译与配置

MySQL的下载

MySQL在官方网站http://www.mysql.com下载,建议下载最新版本。本次源码编译所使用的MySQL安装包是mysql-boost-5.7.17.tar.gz。
Redhat6.5版本自带的cmake软件是2.6版本的,而MySQL编译要求版本为2.8,所以需要自己下载并安装cmake,可以通过源码安装。本次安装所使用的是cmake-2.8.12.2-4.el6.x86_64.rpm安装包。
使用的环境为redhat企业6.5版本。

MySQL源码编译与安装

MySQL的源码安装可以通过以下步骤来完成

[root@server1 mysql-5.7.17]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/
[root@server1 mysql-5.7.17]# make
[root@server1 mysql-5.7.17]# make install

cmake步骤中的参数代表:

-DCMAKE_INSTALL_PREFIX=         # 安装目录
-DMYSQL_DATADIR=                # 数据库存放目录
-DMYSQL_UNIX_ADDR=              # socket文件路径
-DWITH_MYISAM_STORAGE_ENGINE=1  # 安装myisam存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1    # 安装innodb存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1     # 安装archive存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1   # 安装blackhole存储引擎
-DWITH_PARTITION_STORAGE_ENGINE=1   # 安装数据库分区
-DDEFAULT_CHARSET=utf8              # 使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci # 校验字符
-DEXTRA_CHARSETS=all                # 安装所有扩展字符集
-DWITH_BOOST=                       # BOOST路径

上述步骤在执行cmake时,会报错,是因为缺少依赖包,根据报错内容安装相应的软件包,重新编译前需要使用”rm -f CMakeCache.txt”删除CMakeCache.txt文件,这个文件为cmake缓存文件,如果不删除会接着上次错误的地方开始编译,直接报错。

在进行源码编译时,安装了如下安装包。

[root@server1 mysql-5.7.17]# yum install -y gcc
[root@server1 mysql-5.7.17]# yum install -y gcc-c++
[root@server1 mysql-5.7.17]# yum install -y ncurses-devel

MySQL的配置

  • 建立MySQL用户
[root@server1 mysql]# groupadd -g 27 mysql
[root@server1 mysql]# useradd -M -d /usr/local/lnmp/mysql/data -g 27 -u 27 -s /sbin/nologin mysql
[root@server1 mysql]# id mysql
uid=27(mysql) gid=27(mysql) groups=27(mysql)
  • 编辑配置文件
    MySQL启动时读取的配置文件时/etc/my.cnf,将之前的my.cnf备份,然后作如下操作:
[root@server1 mysql]# cp /etc/my.cnf /etc/my.cnf.back
[root@server1 mysql]# cp /usr/local/lnmp/mysql/support-files/my-default.cnf /etc/my.cnf
[root@server1 mysql]# vim /etc/my.cnf

basedir = /usr/local/lnmp/mysql
datadir = /usr/local/lnmp/mysql/data
port = 3306
socket = /usr/local/lnmp/mysql/data/mysql.sock
  • 复制启动脚本
    将启动脚本复制到/etc/init.d目录中,并将MySQL添加到服务中。
[root@server1 mysql]# cp /usr/local/lnmp/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@server1 mysql]# chmod +x /etc/init.d/mysqld
[root@server1 mysql]# chkconfig --add mysqld
  • 修改目录所有人
[root@server1 mysql]# chown -R mysql.mysql /usr/local/lnmp/mysql
  • 加入环境变量
[root@server1 mysql]# vim ~/.bash_profile

PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin

[root@server1 mysql]# source ~/.bash_profile
  • 初始化数据库
    在数据库使用之前需要对数据库进行初始化。mysqld脚本在/usr/local/lnmp/mysql/bin目录下,因为添加了环境变量,所以可以直接用mysqld。
[root@server1 mysql]# mysqld --initialize-insecure --user=mysql

这里写图片描述

  • 安全设置
    为了MySQL的安全,将/usr/local/lnmp/mysql目录中,data目录以外的目录所有人和所有组全部设置为root,data目录设置为mysql。
[root@server1 mysql]# chown -R root.root /usr/local/lnmp/mysql
[root@server1 mysql]# chown -R mysql.mysql /usr/local/lnmp/mysql/data

测试

  • 启动 MySQL
[root@server1 mysql]# /etc/init.d/mysqld start

这里写图片描述

  • 初次登陆前修改密码
    在数据库初始化时,设置的是非安全模式,即数据库的初始密码是空的。可以直接登陆,但是建议修改密码。

这里写图片描述

  • 登陆数据库

    密码修改后,就可以直接登陆数据库了。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值