源码安装MySQL-8.0.20

1、下载MySQL源码
https://dev.mysql.com/downloads/mysql/
选择源码 Generic Linux (Architecture Independent) mysql-x.x.x.tar.gz
2、创建用户和用户组
[Linux]
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

[MacOS]
略过
3、安装编译依赖
[MacOS]
brew install cmake gcc ncurses openssl
[centos]
yum -y install cmake gcc gcc-c++ ncurses-devel openssl-devel
[ubuntu]
sudo apt -y install cmake gcc libncurses5-dev
4、准备好安装目录
[安装目录]
mkdir /Users/horace/software/mysql-8.0.20
cd /Users/horace/software/mysql-8.0.20
mkdir data
mkdir logs
mkdir binlog

[源码目录]
mkdir /Users/horace/software/mysql-8.0.20-src
cd /Users/horace/software/mysql-8.0.20-src
mkdir builder
mkdir builder/boost
5、解压
解压mysql-8.0.20.tar.gz到mysql-8.0.20-src目录下
6、下载boost
https://www.boost.org/users/history/version_1_70_0.html
下载 boost_1_70_0.tar.gz
mv boost_1_70_0.tar.gz builder/boost
7、编译
[进入目录]
cd mysql-8.0.20-src/builder

[开始编译]
cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST=boost -DCMAKE_INSTALL_PREFIX=/Users/horace/software/mysql-8.0.20 -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DMYSQL_DATADIR=/Users/horace/software/mysql-8.0.20/data -DSYSTEMD_PID_DIR=/Users/horace/software/mysql-8.0.20/logs

[参数含义]
-DDOWNLOAD_BOOST 指定是否下载Boost源
-DWITH_BOOST	指定Boost库目录位置
-DCMAKE_INSTALL_PREFIX	安装路径
-DDEFAULT_CHARSET	默认的字符编码
-DDEFAULT_COLLATION	默认的校对规则
-DMYSQL_DATADIR	数据目录
-DSYSTEMD_PID_DIR	pid文件目录
8、安装
make install
9、初始化并得到一个临时密码
[Linux]
mysqld --initialize --user=mysql

[MacOS]
mysqld --initialize
10、配置支持安全连接
mysql_ssl_rsa_setup
11、启动服务器
mysqld_safe --user=mysql &
12、使用临时密码登陆
mysql -uroot -p'xxx'
13、修改密码
SET PASSWORD = PASSWORD('xxxx');
或者:
alter user root@localhost identified by 'xxxx';
flush privileges;
14、关闭服务器
mysqladmin -uroot -p shutdown
15、配置文件

新建文件my.cnf到mysql-8.0.20/etc下

[client]
port = 3306
socket = /tmp/mysql.sock
# 设置mysql客户端的字符集,utf8mb4会导致mysql客户端控制台不显示中文
# default-character-set=utf8mb4

[mysql]
#登录数据库后显示当前位置
#prompt="MySQL [\w]> "
#开启数据库tab补全
auto-rehash
#关闭数据库tab补全
#on-auto-rehash

[mysqld]
#数据目录
datadir=/Users/horace/software/mysql-8.0.20/data
#错误日志
log_error = /Users/horace/software/mysql-8.0.20/logs/error.log
# utf8mb4会导致mysql客户端控制台不显示中文
init-connect = 'SET NAMES utf8'
#utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符
character-set-server = utf8mb4
#允许所有人连接根据 可以需求设置
bind-address = 0.0.0.0
# MySQL能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。如果期望在一个短时间内有很多连接,你需要增加它。也就是说,如果MySQL的连接数据达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。另外,这值(back_log)限于您的操作系统对到来的TCP/IP连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制(可以检查你的OS文档找出这个变量的最大值),试图设定back_log高于你的操作系统的限制将是无效的。
back_log = 50
# 最大连接数量
max_connections = 2000
#防止暴力破解超过100次后禁止连接 成功连接一次后会清零
max_connect_errors = 100
#CREATE TABLE 语句的默认表类型,如果不自己指定类型,则使用下行的类型
default-storage-engine = InnoDB
#启动二进制日志功能,可通过它实现时间点恢复最新的备份
log-bin=/Users/horace/software/mysql-8.0.20/binlog/binlog
#二进制日志格式,对应上一条,-建议混合格式
binlog_format=mixed
#binlog过期清理时间
binlog_expire_logs_seconds = 2592000
# 慢查询日志
slow_query_log = on
#超过1秒的SQL会记录到下面的日志文件
long_query_time = 1
slow_query_log_file = /Users/horace/software/mysql-8.0.20/logs/slowsql.log
#自定义主机ID识别符,用于主从或多服务器之间识别,为一个int类型
server-id = 1
# 开启日志记录
log_output = file
general_log = on
general_log_file = /Users/horace/software/mysql-8.0.20/logs/sql.log
16、重新启动服务器
nohup mysqld_safe --user=mysql --log-error=/Users/horace/software/mysql-8.0.20/logs/app.log --pid-file=/Users/horace/software/mysql-8.0.20/logs/mysql.pid >> /Users/horace/software/mysql-8.0.20/logs/stdout.log &
17、安装完成
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值