环境准备:硬盘剩余空间最少8G,内存剩余最少2G
Mysql官网下载地址:https://dev.mysql.com/downloads/mysql/5.7.html
在Mysql官网下载列表中选择需要安装的版本:
RedHat7.6安装MySQL5.7
安装之前,先要保证系统环境是干净的,不能存在mysql,mariadb相关的东西,同样的软件在同一个操作系统里最好不要装两遍。不管是同样的方式还是不同的方式,看系统里面有没有叫mysql账户,得把它干掉,mysql的配置文件,日志文件都检查一遍。先把环境清理干净,紧接着就可以安装依赖包了。
[root@mysql ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
[root@mysql ~]# rpm -qa | grep mysql
[root@mysql ~]# id mysql
id: mysql: no such user
[root@mysql ~]#
1、卸载系统预置的mariadb
自从mysql被sun收购以后,rhel7已经不支持mysql(收费),内部集成了mariadb,安装mysql会与之冲突,因此需先卸载掉mariadb。
2、准备安装环境
安装依赖包
[root@mysql ~]# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make
[root@mysql ~]# yum -y install cmake
有些时候编译安装软件需要使用cmake命令,不过该命令并不是默认就会安装的程序,特别是选择最小化安装的时候。在安装系统的时候没有安装该软件就需要之后手动安装了。
3、创建账户
[root@mysql ~]# groupadd mysql
[root@mysql ~]# useradd -r -g mysql -s /bin/false mysql
编译安装时账户不会自己创建, -s不让登录,创建一个账户mysql
4、上传mysql安装包
使用工具上传安装包
[root@mysql ~]# tar -zxvf mysql-boost-5.7.34.tar.gz 解包
5、编译安装
[root@mysql mysql-5.7.34]# cmake . -DWITH_BOOST=/mysql-5.7.34/boost/boost_1_59_0 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DMYSQL_DATADIR=/usr/local/mysql/data -DINSTALL_MANDIR=/usr/share/man -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DEXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
[root@mysql mysql-5.7.34]# make && make install 时间稍微久一点
上面make不完的话,下面也不会执行,逻辑与的关系。很容易出错,出错之后直接删了重新解压。
解释:
cmake . \ \续行符
-DWITH_BOOST=boost_1_59_0/ \ #如果安装包带boost目录,这里写/var/ftp/pub/mysql-5.7.34/boost
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 安装目录
-DSYSCONFDIR=/etc \ 指定配置文件所在的路径
-DMYSQL_DATADIR=/usr/local/mysql/data \ 存储数据的目录
-DINSTALL_MANDIR=/usr/share/man \ man手册
-DMYSQL_TCP_PORT=3306 \ 端口
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ sock文件位置,非常重要,客户端连接mysql全靠这个文件,服务起来了,端口有,也连不上,就因为文件不存在
-DDEFAULT_CHARSET=utf8 \ 字符集
-DEXTRA_CHARSETS=all \ 字符集
-DDEFAULT_COLLATION=utf8_general_ci \ 字符集
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 指定默认的存储引擎,因为在mysql里边,以前常用的存储引擎有一个叫myisam的,现在用innodb是最多的。myisam的速度比较快,但是innodb支持的功能比它多,支持的数据量也比它多。
【注意】你得努力学习不然你会被这个时代淘汰