不积跬步无以至千里

记录精彩的程序人生

  • 首页
  • Java
  • Golang
  • PHP
  • Python
  • Nodejs
  • Lua
  • Docker
  • DevOps
  • 文章归档
  • 默认分类
  • 关于
  • 标签

  • 搜索
PostgreSQL hbase 时间同步 nexus 开机启动 nexus, 开机启动 jenkins安装配置 gitlab安装配置 gitlab安装 文件系统 fastdfs gcc切换 gcc升级 mysql8 交换空间 虚拟内存 tcp thrift lua tag test VPN SoftEtherVPN homebrew asm spring tomcat maven jdk ios mac 图案字符 figlet mysql半同步复制 mysql主从同步 一主多从 一主一从 主从同步 反向代理 密码重置 test 虚拟机扩容 swap 虚拟空间 docker ldocker grpc-gateway protobuf 微服务 go grp GRPC 授权登录 OAuth2.0 SOA supervisord supervisor RPC CentOS rabbitmq 环境变量 php-fpm php.ini error php7 lnmp 编译安装 mysql nginx linux java php python redis 字符串操作 mysql5.7 Solo

Centos7编译安装mysql8

发表于 2021-11-02 | 分类于 DevOps | 0 | 阅读次数 3113

MySQL8需要用gcc的版本为4.8以上,CentOS自带的版本比较低,通过yum安装的版本也低,参考下面升级GCC版本:centos7升级切换gcc版本

  1. 依赖安装
yum install devtoolset-7-gcc.x86_64 devtoolset-7-gcc-c++.x86_64 devtoolset-7-gcc-gdb-plugin.x86_64 gcc-c++ libstdc++-devel openssl-devel ncurses ncurses-devel cmake -y
  1. 下载源码并解压
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-boost-8.0.21.tar.gz
tar -zxvf mysql-boost-8.0.21.tar.gz
cd mysql-8.0.21
  1. 创建编译目录build
mkdir build
  1. 修改文件
vim ../extra/libedit/libedit-20190324-3.1/src/terminal.c
char buf[TC_BUFSIZE]; # 删除该行
char *area;
const struct termcapstr *t;
sigset_t oset, nset;
int lins, cols;
(void) sigemptyset(&nset);
(void) sigaddset(&nset, SIGWINCH);
(void) sigprocmask(SIG_BLOCK, &nset, &oset);
area = NULL; # area修改为NULL
  1. 参数配置
    进入到前面创建的build编译目录
cd build
cmake .. -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++  .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=/root/soft/mysql-8.0.21/boost -DFORCE_INSOURCE_BUILD=1
  1. 编译/安装
make
make install

编译过程有点漫长,可以去喝个咖啡或者吃个饭,过程中碰到任何问题大多都是依赖缺少或其他环境问题,一个一个解决之即可

  1. mysql的bin加入环境变量
vim /etc/profile

加入mysql/bin路径到PATH

PATH=$PATH:/usr/local/mysql/bin
source /etc/profile
  1. 创建mysql数据目录并初始化数据
mkdir /data/mysql/data
mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data --initialize
  1. 配置my.cnf文件
[mysqld]
datadir=/data/mysql/data
socket=/tmp/mysql.sock
[mysqld_safe]
log-error=/data/mysql/data/mysql.log
pid-file=/data/mysql/data/mysql.pid
vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
  1. 启动mysql
systemctl start mysql
  1. 使用root账号登录mysql
mysqld --user=root &
  1. 创建/修改root密码
use mysql;
alter user 'root'@'%' identified with mysql_native_password by 'yourpassword';
flush privileges;
  1. 开启root账号远程登录
use mysql;
update user set host='%' where user = 'root';
grant all privileges on *.* to 'root'@'%'with grant option;
flush privileges;

Done!

# 编译安装 # CentOS # mysql8
Centos虚拟内存创建、删除
Centos7升级、切换gcc版本
  • 文章目录
  • 站点概览
ken

ken

记录精彩的程序人生

498 日志
9 分类
77 标签
RSS
Creative Commons
Links
  • 酷壳
0%
© 2010 — 2026 ken
由 Halo 强力驱动
鄂ICP备18013899号-1