CentOS7下的MySQL8.0.13版本源码安装

前言

对于MySQL的安装,有很多种方式,yum,rpm和源码安装,我个人推荐使用源码安装。相对于前两种安装方式,源码安装就繁琐多了,需要将MySQL的工具包全部安装才能对其进行编译安装。但源码包可在所有的linux发行版中进行安装,并没有版本限制,而且可自定义配置,把想要的功能配置,不需要的就不配置,而rpm包的都是一键装全,自由度不高。

下载

windows下载直接点击===>传送门<===下载MySQL8.0.13版本的源码包。

linux下载,需要连接网络和拥有wget工具,没有安装一下就行。

wget  https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-8.0.13.tar.gz

实施步骤

查看linux版本

[root@linux ~]# cat /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)

我所使用的是CentOS7的最新版本,其实搭建网络yum源的目的就是为了更新与mysql相关的依赖包和工具包,较新版本的系统,可以不搭建网络yum源。

1.卸载系统中原有的mysql,mariadb及其相关依赖包

[root@linux ~]# yum -y remove mysql* mariadb*

2.搭建网络yum源,用于下载插件

[root@linux ~]# cd /etc/yum.repos.d/
[root@linux yum.repos.d]# rm -rf *
[root@linux yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo
[root@linux yum.repos.d]# yum clean all 
[root@linux yum.repos.d]# yum makecache 

3.创建相关用户,仅用于服务运行

[root@linux ~]# groupadd mysql
[root@linux ~]# useradd -M -s /sbin/nologin -r -g mysql mysql 

4.创建mysql数据库存放位置并对权限进行控制

[root@linux ~]# mkdir -p /data/mysql/data
[root@linux ~]# mkdir -p /data/mysql/log
[root@linux ~]# chown -R mysql:mysql /data/mysql/

5.安装mysql的依赖包及工具包

[root@linux ~]# yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel openssl-devel

6.将源码包放入/root目录下,并解压,预编译

[root@linux ~]# tar zxf mysql-boost-8.0.13.tar.gz 
[root@linux ~]# cd mysql-8.0.13/
[root@linux mysql-8.0.13]# cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DMYSQL_DATADIR=/data/mysql/data \
> -DWITH_BOOST=/root/mysql-8.0.13/boost \
> -DSYSCONFDIR=/etc \
> -DEFAULT_CHARSET=utf8mb4 \
> -DDEFAULT_COLLATION=utf8mb4_general_ci \
> -DENABLED_LOCAL_INFILE=1 \
> -DEXTRA_CHARSETS=all \
> -DMYSQL_TCP_PORT=3306 \
> -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
> -DWITH_READLINE=1 \

直接粘贴配置项

cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql/data -DWITH_BOOST=/root/mysql-8.0.13/boost -DSYSCONFDIR=/etc -DEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DWITH_READLINE=1 

配置项说明:

-DCMAKE_INSTALL_PREFIX:安装路径
-DMYSQL_DATADIR:数据存放目录
-DWITH_BOOST:boost源码路径
-DSYSCONFDIR:my.cnf配置文件目录
-DEFAULT_CHARSET:数据库默认字符编码
-DDEFAULT_COLLATION:默认排序规则
-DENABLED_LOCAL_INFILE:允许从本文件导入数据
-DEXTRA_CHARSETS:安装所有字符集
-DMYSQL_TCP_PORT:服务端口号,默认3306
-DMYSQL_UNIX_ADDR:socket文件路径,默认/tmp/mysql.sock
-DWITH_READLIN:使用readline功能,即方便在命令行复制、粘贴命令

7.编译,安装

[root@linux mysql-8.0.13]# echo $(cat /proc/cpuinfo | grep processor |wc -l)	#查看cpu内核数
8	

调用cpu核数编译

[root@linux mysql-8.0.13]# make -j 6;make install	#编译并安装

没有调用所有的核数编译,为了确保系统正常运行。

8.MySQL安装目录权限控制,主配置文件设置

[root@linux mysql-8.0.13]# chown -R mysql:mysql /usr/local/mysql/
[root@linux mysql-8.0.13]# vim /etc/my.cnf 
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/data
port=3306
socket=/usr/local/mysql/mysql.sock
symbolic-links=0
character-set-server=utf8
log-error=/data/mysql/log/mysqld.log
pid-file=/usr/local/mysql/mysqld.pid

主配置文件说明:
[mysqld]:模块名称
basedir=/usr/local/mysql:mysql安装目录
datadir=/data/mysql/data:mysql数据存放目录
port=3306:mysql监听端口
socket=/usr/local/mysql/mysql.sock:mysql.sock文件存放目录
symbolic-links=0:关闭mysql的符号链接
character-set-server=utf8:指定mysql的字符集为utf8
log-error=/data/mysql/log/mysqld.log:指定mysql的错误日志存放路径
pid-file=/usr/local/mysql/mysqld.pid:mysql的pid文件存放目录

9.设置启动脚本

[root@linux mysql]# cp support-files/mysql.server /etc/init.d/mysql.server
[root@linux mysql]# chmod +x /etc/init.d/mysql.server

10.初始化数据库

[root@linux mysql-8.0.13]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

11.添加系统服务,并启动服务

[root@linux mysql]# chkconfig --add mysql.server	#添加系统服务
[root@linux mysql]# chkconfig mysql.server on	#开机自启动
[root@linux ~]# chkconfig --list mysql.server	#查看自启动状态

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。 

      要列出 systemd 服务,请执行 'systemctl list-unit-files'。
      查看在具体 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

mysql.server   	0:1:2:3:4:5:6:

系统控制

[root@linux mysql-8.0.13]# /etc/init.d/mysql.server start	#启动
Starting MySQL. SUCCESS!
[root@linux mysql-8.0.13]# /etc/init.d/mysql.server status	#查看
 SUCCESS! MySQL running (28610)
[root@linux mysql-8.0.13]# /etc/init.d/mysql.server stop	#关闭
Shutting down MySQL... SUCCESS! 

12.设置环境变量

[root@linux mysql]# vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
[root@linux mysql]# source /etc/profile
或者
[root@linux mysql-8.0.13]# ln -s /usr/local/mysql/bin/* /usr/local/bin/

13.登录mysql,默认为空密码登录

[root@linux mysql]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.13 Source distribution

Copyright (c) 2000, 2018, 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> 
mysql> exit;
Bye

也可指定用户登录MySQL数据库,但默认是没有密码的,直接回车即可。

[root@linux ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.13 Source distribution

Copyright (c) 2000, 2018, 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> 

若觉得对你有帮助,可以点赞支持一下哦

发布了167 篇原创文章 · 获赞 27 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42534026/article/details/105338137