Mysql5.7.27 版本有很多变化,安装必须要BOOST库,这个BOOST库在MYSQL官网下载。
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
官网安装介绍:
https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
(1)创建安装目录
# mkdir /usr/local/mysql/{data,logs,tmp,run} -p
(2)首先安装源码编译所需要的包
# yum -y install make gcc-c++ cmake bison-devel ncurses-devel
(3) 解压
先解压 mysql-5.7.27.tar.gz :
# tar -zxvf mysql-5.7.27.tar.gz
再解压mysql-boost-5.7.27.tar.gz :
# tar -zxvf mysql-boost-5.7.27.tar.gz #(不需要安装,在安装mysql时自动安装,)
两个文件解压以后都会在同一个目录上 mysql-5.7.27
(4)编译安装(编译参数按实际情况制定)
# cd mysql-5.7.27
# cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/opt/software/mysql-5.7.27/boost \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/run/mysql.sock \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EMBEDDED_SERVER=1
# make & make install
(5)配置mysql
设置权限:
# 首先查看当前系统下是否有mysql用户
# less /etc/shadow
如果没有就新建用户
# 新建用户组
# groupadd mysql
# 新建用户 设置nologin用户不能登录
# useradd -g mysql -s /sbin/nologin -M mysql
# 设置用户密码
# passwd mysql
初始化mysql:
5.7.x之后的版本初始化数据库不再使用mysql_install_db,而是使用: bin/mysqld --initialize
# ./mysqld --defaults-file=/etc/my.cnf --initialize
(6)mysql配置文件 my.cnf
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
user = mysql
# 设置mysql的安装目录
basedir=/usr/local/mysql
#mysql数据文件所在位置
datadir=/usr/local/mysql/data/
#临时目录 比如load data infile会用到
tmpdir=/usr/local/mysql/tmp/
##设置socke文件所在目录
socket=/usr/local/mysql/run/mysql.sock
#记录当前 mysqld 进程的 pid
pid-file=/usr/local/mysql/run/mysql.pid
#错误日志文件
log_error=/usr/local/mysql/logs/error.log
#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#授权表中使用主机名了,只能使用IP
skip-name-resolve
skip-grant-tables
#max_allowed_packet=12800074000
#时区
default-time_zone = '+8:00'
(7)启动mysql
把启动项加载
cp support-files/mysql.server /etc/init.d/mysql
设置开机启动
chkconfig mysqld on
启动mysql
service mysqld start
(8)连接数据库
# cd /usr/local/mysql/bin
# ./mysql -uroot -p
(9)设置数据库可以远程访问
# GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
# flush privileges;