MySQL的源码编译与配置

来源:互联网 发布:遗传算法基本原理 编辑:程序博客网 时间:2024/06/16 17:19

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 mysqluid=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.cnfbasedir = /usr/local/lnmp/mysqldatadir = /usr/local/lnmp/mysql/dataport = 3306socket = /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_profilePATH=$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

这里写图片描述

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

这里写图片描述

  • 登陆数据库

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

这里写图片描述

原创粉丝点击