2-8.1 源码安装MYSQL

一、安装源码包安装环境

yum install -y gcc gcc-c++ glibc automake autoconf libtool make

#下载安装boost库:https://www.boost.org/users/download/
tar -xzf boost_1_59_0.tar.gz  /usr/local
cd boost_1_59_0
mv boost_1_59_0 boost

#下载cmake库
cd cmake
./bootstrap
gmake(与make类似)
gmake install
cmake -version

#下载MySQL源码包:http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.7/

二、安装MySQL

#安装MySQL的依赖包
yum install -y ncurses-devel

#创建MySQL目录
mkdir -p /database/mysql/{data,tmp,binlog,logs}
tree -L 2 /database/

#创建MySQL用户、组
groupadd mysql
useradd mysql -s /sbin/nologin -M -g mysql   #-M:不创建家目录
id mysql

#解压源码包到/usr/local/src/mysql
tar -xzf mysql.tar.gz
cd mysql-5.7.33

#cmake 编译MySQL
cmake \
-DCMAKE_INSTALL_PREFIX=/database/mysql \
-DMYSQL_DATADIR=/database/mysql/data \
-DMYSQL_UNIX_ADDR=/database/mysql/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0 \
-DWITH_BOOST=/usr/local/boost

######说明######
-DCMAKE_INSTALL_PREFIX=/database/mysql   # MySQL的安装目录
-DMYSQL_DATADiR=/database/mysql/data \    #MySQL的数据文件目录
-DMYSQL_UNix_ADDR=/database/mysql/tmp/mysql.sock \   #设置mysql.sock路径
- DDEFAULT_CHARSET=utf8 \   #设置mysql默认字符集
- DDEFAULT_COLLATiON=utf8_general_ci \    #设置mysql的默认排序规则
- DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \   #设置mysql额外字符集规则
- DENABLED.LOCAL-INFILE=ON \    #设置mysql本地数据导入支持
- DWITH_INNOBASE_STORAGE_ENGINE=1 \   #启用存储引擎
- DWITH—FEDERATED_STORAGE_ENGINE=1 \
- DWITH—BLACKHOLE_STORAGE_ENGIN E=1 \
- DWITHOITT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DwiTH_ZLIB=bundled \     #启用zlib库支持
-DWITH_EMBEDDED_SERVER=1 \   #编辑嵌入式服务器支持
-DWITH_DEBUG=O \   #禁用debug默认为禁用
-DWITH-BOOST=/usr/local/boost  #启用boost库支持
########
make install

三、初始化MySQL

#配置MySQL系统环境变量
  echo  'export PATH=/database/mysql/bin:$PATH' >>/etc/profile
  tail -1 /etc/profile
  输出export PATH=/database/mysql/bin:$path

  #使/etc/profile配置文件立即生效
  source /etc/profile
  echo $PATH
  输出/database/mysql/bin:/usr/local/sbin:/usr/local/bi n:/usr/sbin:/usr/bi n:/root/bin

#更改MySQL安装目录的属主与属组
chown -R mysql:mysql /database/mysql/
修改MySQL配置文件的属主和属组
chown mysql:mysql /etc/my.cnf
#修改MySQL配置文件
  ##修改/etc/my.cnf文件,和5.6之前的版本不一样,5.7版本support-files目录下没有.cnf文件,因此,需要自己手动编辑
cp /etc/my.cnf /etc/my.cnf.bak
vim /etc/my.cnf
  #####
		  [client]
		  port = 3306
		  socket = /database/mysql/tmp/mysql.sock  
		  default-character-set = utf8
		  
		  [mysqld]
		  port = 3306
		  user = mysql
		  basedir = /database/mysql
		  datadir = /database/mysql/data
		pid-file = /database/mysql/mysqld.pid
		socket = /database/mysql/tmp/mysql.sock
		tmpdir = /database/mysql/tmp
		character_set_server = utf8
		server-id = 1
		max_connections = 100
		max_connect_errors = 10
		sql_mode =NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT, ANSI_QUOTES
		log-bin = /database/mysql/binlog/mysql-bin
		log-error = /database/mysql/logs/mysql_5_7_33. err
  #####
#######说明
  [client]
		  port = 3306  #端口
		  socket = /database/mysql/tmp/mysql.sock  #用于本地连接的socket套接字
		  default-character-set = utf8  #编码
		  
		  [mysqld]
		  port = 3306  #服务端口号
		  user = mysql  #MySQL启动用户
		  basedir = /database/mysql  #MySQL安装根目录
		  datadir = /database/mysql/data  #MySQL数据文件所在位置
		pid-file = /database/mysql/mysqld.pid  #pid文件所在目录
		socket = /database/mysql/tmp/mysql.sock  #为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
		tmpdir = /database/mysql/tmp  #MySQL存放的临时目录
		character_set_server = utf8  #数据库默认字符集
		server-id = 1  #MySQL的唯一编号,每个mySQL服务id需唯一
		max_connections = 100  #最大的连接数
		max_connect_errors = 10  #最大的错误连接数
		sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT, ANSI_QUOTES  
		# sql_mode,定义了mysql应该支持的sql语法,数据校验
		# NO_ENGINE_SUBSTTTUTION:如果需要的存储引擎被禁用或未编译,可以防止自动甘换存储引擎
		# STRICT_TRANS_TABLES:存储引擎启用严格模式,非法数据值被拒绝
		# NO_AUTO_CREATE_USER:禁止GRANT创建密码为空的用户
		# NO_AUTO_VALUE_ON_ZERO:默认情况下自增长列是从1开始的.如果你插入值为0的数据会报错,设置这个之后就可以正常插入为0的数据了
		# NO_ZERO_IN_DATE:在严格模式,不接受月或口部分为0的日期
		# NO_ZERO_DATE:在严格模式,不要将'0000-00-00,做为合法日期
		# ERROR_FOR_DIVISION_BY_ZERO:在严格模式.在INSERT或UPDATE过程中,如果被零除(或
		MOD(X, 0)),则产生错误(否则为警告).如果未给出该模式,被零除时MySQL返回NULL
		# PIPES_AS_CONCAT:将| |视为字符中连接操作符(+)(同CONCAT()),而不视为OR
		# ANS1_QUOTES:将'"'视为识别符引号(' ' '引号字符),不要视为字符串的引导字符

		log-bin = /database/mysql/binlog/mysql-bin  #开启二进制日志功能,binlog数据存放位置
		log-error = /database/mysql/1ogs/mysql_5_7_33. err  #MySQL生成的错误日志存放的路径

#
  ##########

#初始化数据库
cd /database/mysql
./bin/mysql --initialize-insecure --user=mysql --basedir=/database/mysql --datadir=/database/mysql/data
  ##--initialize-insecure:生成初始化密码参数
  ## --user=mysql:初始化用户
  ##--basedir=/database/mysql:设定MySQL工作目录
  ##--datadir=/database/mysql/data:设定MySQL数据文件目录
  
#MySQL实例开启SSL链接
cd /database/mysql
./bin/mysql_ssl_rsa_setup --initialize-insecure --user=mysql --basedir=/database/mysql --datadir=/database/mysql/data

#修改目录权限
cd /database/mysql/data
chmod +r server-key.pem

#拷贝MySQL启动脚本
cp /database/mysql/support-files/mysql.server /etc/init.d/mysql

#重新加载系统服务
systemctl daemon-reload

#启动mysql
/etc/init.d.mysql start 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值