CentOS8部署LNMP环境之编译安装mysql8.0.29的教程详解
作者:SuieKa 发布时间:2024-01-18 04:54:14
一、前提
由于我安装了几次,我就不再讲述报错了,有点打脑壳!!!提前把相关依赖和报错就地解决。
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.gz
mysql-8.0.19.tar.gz
rpcsvc-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_CHARSETS
INSTALL_DATADIR
MYSQL_USER
WITH_EMBEDDED_SERVER– 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 cc1plus
compilation terminated.
make[2]: *** [sql/CMakeFiles/sql_gis.dir/build.make:154: sql/CMakeFiles/sql_gis.dir/gis/distance_functor.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:11144: sql/CMakeFiles/sql_gis.dir/all] Error 2
make: *** [Makefile:163: all] Error 2
创建分区:
[19:58:37 root@wangzhike mysql-8.0.19]#dd if=/dev/zero of=/swapfile bs=1k count=2048000
2048000+0 records in
2048000+0 records out
2097152000 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 /swapfile
mkswap: /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 /swapfile
swapon: /swapfile: insecure permissions 0644, 0600 suggested.
####激活SWAP文件
[20:10:12 root@wangzhike mysql-8.0.19]#swapon -s
Filename 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=utf8
2020-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 9893
2020-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=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
user = mysql
socket=/tmp/mysql.sock
tmpdir = /tmp
key_buffer_size=16M
max_allowed_packet=128M
default_authentication_plugin=mysql_native_password
open_files_limit = 60000
explicit_defaults_for_timestamp
server-id = 1
character-set-server = utf8
federated
max_connections = 1000
max_connect_errors = 100000
interactive_timeout = 86400
wait_timeout = 86400
sync_binlog=0
back_log=100
default-storage-engine = InnoDB
log_slave_updates = 1
[mysqldump]
quick
[client]
password="123456"
[mysqld-8.0]
sql_mode=TRADITIONAL
[mysqladmin]
force
[mysqld]
key_buffer_size=16M
service 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/mysql
basedir=/usr/local/mysql#MySQL程序安装路径
datadir=/data/mysql#MySQl数据库存放目录
5、开机启动成功
[20:54:32 root@wangzhike ~]#service mysqld start
Starting 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 -p123456
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.19 Source distribution
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
则表示登陆成功。
来源:https://blog.csdn.net/weixin_44847002/article/details/105509681
猜你喜欢
- 大家好,并发编程 今天开始进入第二篇。今天的内容会比较基础,主要是为了让新手也能无障碍地阅读,所以还是要再巩固下基础。学完了基础,你们也就能
- 目录:1.安装python32.安装flask3.简单的服务器代码编写4.设置FLASK_APP路径并启动服务器程序1.安装python3p
- 前言Python包含6种内置的序列:列表、元组、字符串 、Unicode字符串、buffer对象、xrange对象。在序列中的每个元素都有自
- 抢票是并发执行多个进程可以访问同一个文件多个进程共享同一文件,我们可以把文件当数据库,用多个进程模拟多个人执行抢票任务db.tx
- 我们利用linux系统中yum安装Apache+MySQL+PHP是非常的简单哦,只需要几步就可以完成,具体如下:一、脚本YUM源安装:1.
- 本文实例讲述了PHP实现绘制二叉树图形显示功能。分享给大家供大家参考,具体如下:前言:最近老师布置了一个作业:理解并实现平衡二叉树和红黑树,
- <html> <head> <title>Untitled Document</title>
- 腾讯“月捐计划”倡导爱心人士,通过每月小额捐款的形式,长期关注和支持公益项目。并和亿万爱心网友一起,每人每月1份爱,点滴付出,汇成爱海,形成
- 前言本文代码基于 python3.6 和 pygame1.9.4。俄罗斯方块是儿时最经典的游戏之一,刚开始接触 pygame 的时候就想写一
- 首先来看一个封装的curl函数function request_post($url = '', $param = '
- word2vec介绍word2vec官网:https://code.google.com/p/word2vec/word2vec是googl
- 本文实例为大家分享了python实现飞机大战的具体代码,供大家参考,具体内容如下游戏的实现本质是多个图片的快速切换,类似动画一样,达到动态的
- 今天我们来学习一下 异常语法 中的另一个成员 —> finally ; 通过学习 finally ,可以帮助我们更
- 1、Librosaimport librosa filepath = "/Users/birenjianmo/Desktop/le
- 有时候在使用 Python 的时候,想要对一个数字或者字符串进行补零操作,即把「1」变为一个八位数的「00000001」,这个时候可以使用一
- 1、说明装饰本质上是一个Python函数,它能使其他函数在没有任何代码变化的情况下增加额外的功能。有了装饰,我们可以抽出大量与函数功能无关的
- 简单介绍HTTP是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范。HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端
- 一、嵌套命令计算机执行的顺序缩进相同的命令处于同一个等级,第一步,计算机就要按顺序一条一条地执行命令。1、先给score赋值;2、因为if和
- PIL:使用python自带图像处理库读取出来的图片格式numpy:使用python-opencv库读取出来的图片格式tensor:pyto
- 如今,随着深度学习的发展,python已经成为了深度学习研究中第一语言。绝大部分的深度学习工具包都有python的版本,很多重要算法都有py