ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Liunx下 源码编译安装 MySQL 5.7.27

2019-08-18 19:40:37  阅读:77  来源: 互联网

标签:27 5.7 源码 usr mysql DWITH local



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 mysql on

启动mysql

service mysql 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;

 



标签:27,5.7,源码,usr,mysql,DWITH,local

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有