前言
对于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>
若觉得对你有帮助,可以点赞支持一下哦