侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

CentOS8部署LNMP环境之编译安装mysql8.0.29的教程详解

linux  /  管理员 发布于 7年前   555

一、前提

由于我安装了几次,我就不再讲述报错了,有点打脑壳!!!提前把相关依赖和报错就地解决。

1、所需源码包

mysql-8.0.19.tar.gz boost_1_70_0.tar.gz//安装mysql-8所需要的boost版本rpcsvc-proto-1.4.tar.gz//后面出错所需要的源码包mysql-8.0.19下载地址:http://mirrors.sohu.com/mysql/boost_1_70_0下载地址:https://dl.bintray.com/boostorg/release/1.70.0/source/rpcsvc-proto-1.4下载地址:https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/

2、解决依赖

[14:41:21 root@wangzhike ~]#yum install -y cmake ncurses-devel

3、存放位置

软件源代码包存放位置:/usr/local/src
源码包编译安装位置:/usr/local/软件名字

二、编译安装mysql-8.0.19

1、上传源码包

boost_1_70_0.tar.gzmysql-8.0.19.tar.gzrpcsvc-proto-1.4.tar.gz

2、解决rpcsvc-proto-1.4

1)、解压

[17:05:14 root@wangzhike software]#tar -zxf rpcsvc-proto-1.4.tar.gz -C /usr/local/src/

2)、一步安装

[17:09:48 root@wangzhike rpcsvc-proto-1.4]#./configure && make && make install

3、解决boost_1_70_0

[17:13:48 root@wangzhike~]# mkdir -p /usr/local/boost[17:14:05 root@wangzhike~]# cd /usr/local/src[17:15:02 root@wangzhike src]#cp /software/boost_1_70_0.tar.gz /usr/local/boost/[17:26:22 root@wangzhike boost]#tar xf boost_1_70_0.tar.gz////只上传到/usr/local/src/存放目录,解压到当前boost目录

4、创建mysql用户及组

[17:27:46 root@wangzhike ~]#groupadd mysql[17:28:10 root@wangzhike ~]#useradd -g mysql mysql -s /bin/false####创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统[17:28:11 root@wangzhike ~]#mkdir -p /data/mysql ####创建MySQL数据库存放目录[17:29:13 root@wangzhike ~]#chown -R mysql:mysql /data/mysql ####设置MySQL数据库存放目录权限[17:29:31 root@wangzhike ~]#mkdir -p /usr/local/mysql ####创建MySQL安装目录

5、安装mysql-8.0.19

1)、解压

[17:43:24 root@wangzhike software]#tar -zxf mysql-8.0.19.tar.gz -C /usr/local/src/[17:43:47 root@wangzhike software]#cd /usr/local/src/[17:43:53 root@wangzhike src]#cd mysql-8.0.19/

2)、安装

[17:47:01 root@wangzhike mysql-8.0.19]#cmake . \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DINSTALL_DATADIR=/data/mysql -DMYSQL_USER=mysql \-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_EMBEDDED_SERVER=1 \-DFORCE_INSOURCE_BUILD=1 \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DENABLED_LOCAL_INFILE=1 \-DEXTRA_CHARSETS=all \-DWITH_BOOST=/usr/local/boost

若出现以下则没毛病

CMake Warning: Manually-specified variables were not used by the
project:

EXTRA_CHARSETSINSTALL_DATADIRMYSQL_USERWITH_EMBEDDED_SERVER

C Build files have been written to: /usr/local/src/mysql-8.0.19

若出现以下关于rpc.h的错误
Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc

解决方法:

[17:45:47 root@wangzhike mysql-8.0.19]#find / -name rpc.h/usr/local/src/mysql-8.0.19/extra/libevent/include/event2/rpc.h/usr/local/src/mysql-8.0.19/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/windeps/sunrpc/rpc/rpc.h

####并将/usr/local/src/mysql-8.0.19/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/windeps/sunrpc/目录下的rpc/rpc.h拷贝到/usr/include/

如下

[17:52:57 root@wangzhike mysql-8.0.19]#cp -a /usr/local/src/mysql-8.0.19/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/windeps/sunrpc/rpc /usr/include/

3)、make && install

[17:55:20 root@wangzhike mysql-8.0.19]#make -j 3 && install
//过程超长且内存不足的会报错

等待等待等待

若报以下错则表示内存不足需要创建分区

+: fatal error: Killed signal terminated program cc1pluscompilation terminated.make[2]: *** [sql/CMakeFiles/sql_gis.dir/build.make:154: sql/CMakeFiles/sql_gis.dir/gis/distance_functor.cc.o] Error 1make[2]: *** Waiting for unfinished jobs....make[1]: *** [CMakeFiles/Makefile2:11144: sql/CMakeFiles/sql_gis.dir/all] Error 2make: *** [Makefile:163: all] Error 2

创建分区:

[19:58:37 root@wangzhike mysql-8.0.19]#dd if=/dev/zero of=/swapfile bs=1k count=20480002048000+0 records in2048000+0 records out2097152000 bytes (2.1 GB, 2.0 GiB) copied, 6.07651 s, 345 MB/s####获取要增加的2G的SWAP文件块[20:10:02 root@wangzhike mysql-8.0.19]#mkswap /swapfilemkswap: /swapfile: insecure permissions 0644, 0600 suggested.Setting up swapspace version 1, size = 2 GiB (2097147904 bytes)no label, UUID=18a4bbb3-75d1-411b-ac0c-c87c63547509####创建SWAP文件[20:10:07 root@wangzhike mysql-8.0.19]#swapon /swapfileswapon: /swapfile: insecure permissions 0644, 0600 suggested.####激活SWAP文件[20:10:12 root@wangzhike mysql-8.0.19]#swapon -sFilename        Type   Size Used Priority/dev/sda2        partition  2144252 137300 -2/swapfile        file   2047996 0  -3#####查看SWAP信息是否正确[20:10:19 root@wangzhike mysql-8.0.19]#echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab####添加到fstab文件中让系统引导时自动启动

在重新执行make -j 3 && make install ,出现以下画面则没有报错

```bash-- Installing: /usr/local/mysql/man/man1/comp_err.1-- Installing: /usr/local/mysql/man/man1/ibd2sdi.1-- Installing: /usr/local/mysql/man/man1/innochecksum.1-- Installing: /usr/local/mysql/man/man1/lz4_decompress.1-- Installing: /usr/local/mysql/man/man1/my_print_defaults.1-- Installing: /usr/local/mysql/man/man1/myisam_ftdump.1-- Installing: /usr/local/mysql/man/man1/myisamchk.1-- Installing: /usr/local/mysql/man/man1/myisamlog.1-- Installing: /usr/local/mysql/man/man1/myisampack.1-- Installing: /usr/local/mysql/man/man1/mysql.1-- Installing: /usr/local/mysql/man/man1/mysql.server.1-- Installing: /usr/local/mysql/man/man1/mysql_config.1-- Installing: /usr/local/mysql/man/man1/mysql_config_editor.1-- Installing: /usr/local/mysql/man/man1/mysql_secure_installation.1-- Installing: /usr/local/mysql/man/man1/mysql_ssl_rsa_setup.1-- Installing: /usr/local/mysql/man/man1/mysql_tzinfo_to_sql.1-- Installing: /usr/local/mysql/man/man1/mysql_upgrade.1-- Installing: /usr/local/mysql/man/man1/mysqladmin.1-- Installing: /usr/local/mysql/man/man1/mysqlbinlog.1-- Installing: /usr/local/mysql/man/man1/mysqlcheck.1-- Installing: /usr/local/mysql/man/man1/mysqld_multi.1-- Installing: /usr/local/mysql/man/man1/mysqld_safe.1-- Installing: /usr/local/mysql/man/man1/mysqldump.1-- Installing: /usr/local/mysql/man/man1/mysqldumpslow.1-- Installing: /usr/local/mysql/man/man1/mysqlimport.1-- Installing: /usr/local/mysql/man/man1/mysqlman.1-- Installing: /usr/local/mysql/man/man1/mysqlpump.1-- Installing: /usr/local/mysql/man/man1/mysqlshow.1-- Installing: /usr/local/mysql/man/man1/mysqlslap.1-- Installing: /usr/local/mysql/man/man1/perror.1-- Installing: /usr/local/mysql/man/man1/zlib_decompress.1-- Installing: /usr/local/mysql/man/man8/mysqld.8-- Installing: /usr/local/mysql/man/man1/mysqlrouter.1-- Installing: /usr/local/mysql/man/man1/mysqlrouter_passwd.1-- Installing: /usr/local/mysql/man/man1/mysqlrouter_plugin_info.1

三、初始化mysql数据库

1、修改mysql目录权限

[20:37:59 root@wangzhike mysql-8.0.19]#chown -R mysql:mysql /usr/local/mysql[20:42:07 root@wangzhike mysql-8.0.19]#chmod -R 755 /usr/local/mysql

2、初始化mysql

[20:45:07 root@wangzhike ~]#cd /usr/local/mysql/[20:46:43 root@wangzhike mysql]#./bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --character-set-server=utf82020-04-14T12:47:13.718724Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.19) initializing of server in progress as process 98932020-04-14T12:47:13.719367Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.2020-04-14T12:47:14.855541Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rUG-.8kdw<1f####生成mysql系统数据库。

3、修改配置文件
mysql 8.0.x默认没有配置文件,我们自己创建一个。

[20:49:41 root@wangzhike mysql]#vi /usr/local/mysql/my.cnf添加以下内容:[client]port=3306socket=/tmp/mysql.sock[mysqld]port=3306user = mysqlsocket=/tmp/mysql.socktmpdir = /tmpkey_buffer_size=16Mmax_allowed_packet=128Mdefault_authentication_plugin=mysql_native_passwordopen_files_limit = 60000explicit_defaults_for_timestampserver-id = 1character-set-server = utf8federatedmax_connections = 1000max_connect_errors = 100000interactive_timeout = 86400wait_timeout = 86400sync_binlog=0back_log=100default-storage-engine = InnoDBlog_slave_updates = 1[mysqldump]quick[client]password="123456"[mysqld-8.0]sql_mode=TRADITIONAL[mysqladmin]force[mysqld]key_buffer_size=16Mservice mysqld restart

:wq!保存退出
注意,service mysqld restart 这一句一定写上,默认密码为123456

其他操作

[20:53:05 root@wangzhike mysql]#ln -s /usr/local/mysql/my.cnf /etc/my.cnf#添加到/etc目录的软连接[20:53:12 root@wangzhike mysql]#cd[20:53:13 root@wangzhike ~]#cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld#把Mysql加入系统启动[20:53:21 root@wangzhike ~]#chmod 755 /etc/init.d/mysqld#增加执行权限[20:53:28 root@wangzhike ~]#chkconfig mysqld on#加入开机启动

4、编辑文件

[20:53:39 root@wangzhike ~]#vi /etc/rc.d/init.d/mysqld####找到basedir=并修改为/usr/local/mysql####找到datadir=并修改为/data/mysqlbasedir=/usr/local/mysql#MySQL程序安装路径datadir=/data/mysql#MySQl数据库存放目录

5、开机启动成功

[20:54:32 root@wangzhike ~]#service mysqld startStarting MySQL.Logging to '/data/mysql/wangzhike.err'.. SUCCESS!#启动成功

6、添加变量

[20:54:44 root@wangzhike ~]#vi /etc/profile在最后一行添加export PATH=$PATH:/usr/local/mysql/bin[20:55:37 root@wangzhike ~]#source /etc/profile#使配置立刻生效

7、添加软连接

[20:55:44 root@wangzhike ~]#ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql[20:55:57 root@wangzhike ~]#ln -s /usr/local/mysql/include/mysql /usr/include/mysql####以上为把myslq的库文件链接到系统默认的位置[20:56:02 root@wangzhike ~]#mkdir /var/lib/mysql[20:56:14 root@wangzhike ~]#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

8、启动mysql

[21:40:14 root@wangzhike ~]#mysql -uroot -p123456Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 9Server version: 8.0.19 Source distributionCopyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>

则表示登陆成功。

总结

到此这篇关于CentOS8部署LNMP环境之编译安装mysql-8.0.29的文章就介绍到这了,更多相关CentOS8部署LNMP环境之编译安装mysql-8.0.29内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


  • 上一条:
    Linux 通过Rsync+Inotify实现本、异地远程数据实时同步功能
    下一条:
    IOS 开发之NSDictionary转换成JSON字符串
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在Linux系统中使用Iptables实现流量转发功能流程步骤(0个评论)
    • vim学习笔记-入门级需要了解的一些快捷键(0个评论)
    • 在centos7系统中实现分区并格式化挂载一块硬盘到/data目录流程步骤(0个评论)
    • 在Linux系统种查看某一个进程所占用的内存命令(0个评论)
    • Linux中grep命令中的10种高级用法浅析(0个评论)
    • 近期文章
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-11
    • 2017-07
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-03
    • 2022-04
    • 2022-08
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-06
    • 2023-07
    • 2023-10
    • 2023-12
    • 2024-01
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客