一、安装环境准备
centos6.5
二、下载MysqL source_code
这里说一下,进入myql下载页面后选择source_code: 然后选择GenericLinux(ArchitectureIndependent),CompressedTARArchive IncludesBoostHeaders这个包下载。 也可以用下面的地址: wgethttp://dev.MysqL.com/get/Downloads/MysqL-5.7/MysqL-boost-5.7.17.tar.gz
三、做一些准备工作
su-root #关闭Linux防火墙命令 chkconfigiptablesoff #修改SELINUX配置 vim/etc/sysconfig/selinux #SELINUX=enforcing #修改为: #SELINUX=disabled reboot #安装cmakeMysqL5.7采用cmake方式进行配置 yum-yupdate yum-yinstallwgetgcc-c++ncurses-develcmakemakeperl #创建用户、组为MysqL groupaddMysqL useradd-r-gMysqLMysqL #新建数据库执行文件目录(后面会把编译好的MysqL程序安装到这个目录): mkdir-p/application/MysqL5.7.17 ln-s/application/MysqL/application/MysqL5.7.17 #新建数据库数据文件目录: mkdir-p/home/MysqL mkdir-p/home/MysqL/data mkdir-p/home/MysqL/logs mkdir-p/home/MysqL/temp #编辑PATH搜索路径 vi/etc/profile+ #在profile文件末尾增加两行 #PATH=/application/MysqL/bin:/application/MysqL/lib:$PATH #exportPATH #使PATH搜索路径立即生效: source/etc/profile #编辑hosts文件,增加一行,加入本机IP和主机名(需要根据实际情况修改IP和主机名) vi/etc/hosts+ #192.168.3.158skytest #ok进入下载工具目录,开始下载 cd/home/tools wgethttp://dev.MysqL.com/get/Downloads/MysqL-5.7/MysqL-boost-5.7.17.tar.gz
四、配置并安装
cmake\ -DCMAKE_INSTALL_PREFIX=/application/MysqL\ -DMysqL_UNIX_ADDR=/application/MysqL.sock\ -DDEFAULT_CHARSET=utf8\ -DDEFAULT_COLLATION=utf8_general_ci\ -DWITH_MYISAM_STORAGE_ENGINE=1\ -DWITH_INNOBASE_STORAGE_ENGINE=1\ -DWITH_ARCHIVE_STORAGE_ENGINE=1\ -DWITH_BLACKHOLE_STORAGE_ENGINE=1\ -DWITH_MEMORY_STORAGE_ENGINE=1\ -DWITH_READLINE=1\ -DENABLED_LOCAL_INFILE=1\ -DMysqL_DATADIR=/home/MysqL/data\ -DMysqL_USER=MysqL\ -DMysqL_TCP_PORT=3306\ -DENABLE_DOWNLOADS=1\ -DWITH_BOOST=boost/boost_1_59_0/ #-DWITH_BOOST=boost/boost_1_59_0/这一行是指定boost库的位置, #如果下载的不是MysqL-boost-5.7.17.tar.gz这个已经包含boost库的包, #那么需要在配置项中指明下载boost库当然这样比较慢,所以还是建议下载完整包 #直接cmake指定参数-DDOWNLOAD_BOOST=1-DWITH_BOOST=<directory>系统会下载boost #cmake结束后开始编译源码,这一步时间会较长,嗯,长的我都快睡了。 make #看一下有没有错误 echo$? #输出0,没有错误继续 makeinstall #清除安装临时文件 makeclean #修改目录拥有者 chown-RfMysqL:MysqL/application/MysqL5.7.17 chown-RfMysqL:MysqL/home/MysqL #创建自带的库和表 #MysqL5.7之前版本初始化配置表命令: #script/MysqL_install_db\ #--user=MysqL\ #--basedir=/application/MysqL\ #--datadir=/home/MysqL/data #MysqL5.7已经放弃使用了,而且也没有script目录,可以使用下面这个 cd/application/myql ./bin/MysqLd --initialize --user=MysqL --basedir=/application/MysqL --datadir=/home/MysqL/data #初始化数据后注意文字提示,里面有root用户的初始密码 #在/etc目录下如果存在一个my.cnf文件,建议将此文件更名为其他的名字, #否则该文件会干扰源码安装的MysqL的正确配置,造成无法启动。 #修改/etc/my.cnf操作如下: mv/etc/my.cnf/etc/my.cnf.bak #在启动MysqL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找, #找不到则会搜索MysqL程序目录下是否有my.cnf cp/application/MysqL/support-files/my-default.cnf/etc/my.cnf #MysqL5.7配置文件需要修改my.cnf关键配置, #MysqL5.7之前默认配置文件中是有配置项的,不用手动修改 vi/etc/my.cnf #修改下面配置 [MysqLd] basedir=/application/MysqL datadir=/home/MysqL/data port=3306 socket=/home/MysqL/temp/MysqL.sock [client] socket=/tmp/MysqL.sock #client这个字段千万别忘了,如果没有就自己加。不然会不能登录,出现以下错误 #ERROR2002(HY000):Can'tconnecttolocalMysqLserverthroughsocket'/application/MysqL5.7/MysqL.sock'(2) #使用serviceMysqL命令启动/停止服务 cp/application/MysqL/support-files/MysqL.server/etc/init.d/MysqL
五、加入开机启动
chkconfigMysqLon