mysql5.7.35源码编译安装部署

1.安装前准备

1.1服务器环境
centos7.6
1.2下载所有需要的安装包
(1)mysql-boost-5.7.35.tar.gz,(2)mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
链接:https://pan.baidu.com/s/1I5aru9IESv0qIlqTeprH8A 提取码:mqjy
1.3上传文件到服务器
#代表root用户执行此命令,$代表普通用户执行此命令
# mkdir /app/software
上传所有软件到服务器/app/software/

2.开始安装

2.1安装所需依赖
# yum -y install cmake gcc gcc-c++ ncurses-devel
2.2创建组和用户
# groupadd mysql
#useradd -r -g mysql -s /bin/false mysql
2.3创建相应目录并授权
# mkdir -p /app/mysql/data
# chown -R mysql:mysql /app/mysql/
2.3安装mysql
# cd /app/software/
# tar zxvf mysql-boost-5.7.35.tar.gz
# cd mysql-5.7.35
# cmake -DCMAKE_INSTALL_PREFIX=/app/mysql -DMYSQL_DATADIR=/app/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost -DDOWNLOAD_BOOST=1

cmake 参数解释:
-DCMAKE_INSTALL_PREFIX: 指定安装路径
-DMYSQL_DATADIR : 指定数据存放路径
-DMYSQL_UNIX_ADDR :指定套间字路径
-DDEFAULT_CHARSET : 设置字符集
-DDEFAULT_COLLATION : 设置字符校验集
-DWITH_BOOST : 指定Boost扩展源码路径
-DDOWNLOAD_BOOST=1:如果查找不到boost则下载boost

执行以下命令编译mysql
# make
# make install
# chown -R mysql:mysql /app/mysql/
# vi /etc/my.cnf

[mysqld]
basedir = /app/mysql/
datadir = /app/mysql/data
socket = /tmp/mysql.sock

初始化数据库:
# cd /app/mysql/bin
# ./mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql

命令参数解释:
–defaults-file : 制定MySQL配置文件路径
–initialize : 初始化随机密码,注意,初始化的密码是一个过期密码,登录后需要修改密码
–user: 指定账户
上一个命令执行完之后,会在命令提示符的最后给出随机密码,
一定记住 将此密码记录下来

启动mysql服务
# cd /app/mysql/support-files/
# ./mysql.server start
# cd /app/mysql/bin/
# ./mysql -u root -p
执行以下sql修改密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY  '新密码';

2.4开放远程连接MySQL服务权限

mysql> use mysql;
mysql> update user set host='%' where user='root';
mysql> flush privileges;

到此完成

4.使用二进制文件安装mysql服务

4.1安装依赖包
# yum -y install libaio libaio-devel
4.2创建组和用户
# groupadd mysql
# useradd -r -g mysql -s /bin/false mysql
4.3解压文件
# tar zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
# mv mysql-5.7.35-linux-glibc2.12-x86_64 /usr/local/mysql
# vi /etc/my.cnf

[mysqld]
basedir = /usr/local/mysql/
datadir = /usr/local/mysql/data
socket = /tmp/mysql.sock
[mysqld_safe]
log-error=/usr/local/mysql/logs/error.log
pid-file=/usr/local/mysql/logs/mysql.pid

切换至安装目录,初始化数据库
# cd /usr/local/mysql
# bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql

命令参数解释:
–defaults-file : 制定MySQL配置文件路径
–initialize : 初始化随机密码,注意,初始化的密码是一个过期密码,登录后需要修改密码
–user: 指定账户

上一个命令执行完之后,会在命令提示符的最后给出随机密码,一定记住 将此密码记录下来
# support-files/mysql.server start #启动mysql 服务器
# bin/mysql -u root -p

Enter password: # 输入刚刚的随机密码链接数据库

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY  '新密码';

开放远程连接MySQL服务权限

mysql> use mysql;
mysql> update user set host='%' where user='root';
mysql> flush privileges;

二进制安装到此完成

编译源码安装与二进制安装最大的区别就是编译源码安装时对源代码进行编译而二进制安装不需要编译,直接就可以使用;

5.my.cnf配置文件

[mysql]
default-character-set=utf8
socket=/tmp/mysql.sock


[mysqld]
default-storage-engine=INNODB
character_set_server=utf8
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
server_id=1
port=3306
# 是否区分大小写,0区分,1不区分
lower_case_table_names=1
federated


max_connections=3000
max_allowed_packet=512M
# 表示缓冲池字节大小,推荐值为物理内存的50%~80%
innodb_buffer_pool_size=20G
# 用来控制redo log刷新到磁盘的策略。
innodb_flush_log_at_trx_commit=1
max_connect_errors=10
sql_mode=strict_trans_tables,no_zero_in_date,no_zero_date,error_for_division_by_zero,no_engine_substitution
innodb_open_files=800



read_buffer_size=4M
read_rnd_buffer_size=8M
thread_cache_size=10
tmp_table_size=20M
table_open_cache=2000
query_cache_size=40M


sort_buffer_size=256K
join_buffer_size=256K

# 后台进程最大IO性能指标。默认200,如果SSD,调整为5000~20000
innodb_io_capacity=5000
# 非交互式连接 最大空闲时长(jdbc)单位:秒
wait_timeout=120
# 交互式连接 最大空闲时长(mysql客户端)单位:秒
interactive_timeout=120
# 并发线程数,设为 CPU 核数的两倍
#thread_concurrency=16
# 慢查询开启
#slow_query_log = 'ON'
# 慢查询sql存放文件路径
#slow_query_log_file = /usr/local/mysql/data/slow.log
# 记录查询超过1秒的语句
#long_query_time = 1
# 开启查询缓存
query_cache_type = 1
# 查询缓存大小
query_cache_size = 400M
# 查询缓存单个sql最大值
#query_cache_limit = 1M
# 除了缓存表数据和索引外,可以为操作所需的其他内部项分配缓存来提升InnoDB 的性能。这些内存就可以通过此参数来分配。(默认值不到百MB,调到1G提升3000tps)
#innodb_additional_mem_pool_size = 1G
# 可以修改 InnoDB 为独立表空间模式,每个数据库的每个表都会生成一个数据空间。当一个 MySQL 服务器作为 Mycat 分片表存储服务器使用的情况下,单独表空间的访问性能要大大好友共享表空间,因此强烈建议使用独立表空间。
#innodb_file_per_table=1
# InnoDB 存储引擎的事务日志所使用的缓冲区
innodb_log_buffer_size = 512M
# 自动扩展InnoDB系统空间的增量大小, 对于大批量插入数据也是比较重要的优化参数(单位是 M)
#innodb_autoextend_increment = 1024M
# 此参数确定数据日志文件的大小,以 M 为单位,更大的设置可以提高性能,但也会增加恢复故障数据库所需的时间。(默认值50MB,调到2G后,tps由2000提升到20000,提高了10倍)
#innodb_log_file_size = 2048M

[client]
port=3306
default-character-set=utf8


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值