mysql 8.0安装(源码编译)


安装环境:rhel7.6

Mysql

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。
MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。

下载及安装

安装方式有多种
可在官网https://www.mysql.com下载rpm包,也可以下载源码包。
此次下载我们下载源码包,使用源码编译的方式进行安装。

磁盘容量要求:
mysql压缩包及解压包的大小已经算是很大了压缩包266M,解压包839M,编译完成后更是达到9.9G,安装的mysql 2.2G。

[root@server1 mnt]# du -sh mysql-boost-8.0.21.tar.gz 
266M	mysql-boost-8.0.21.tar.gz
[root@server1 mnt]# tar zxf mysql-boost-8.0.21.tar.gz 
[root@server1 mnt]# du -sh mysql-
mysql-8.0.21/              mysql-boost-8.0.21.tar.gz
[root@server1 mnt]# du -sh mysql-
mysql-8.0.21/              mysql-boost-8.0.21.tar.gz
[root@server1 mnt]# du -sh mysql-8.0.21/
893M	mysql-8.0.21/

编译:
首先在解压包里创建一个新的目录biuld,来存放编译产生的文件
进入到biuld中,
mysql使用cmake进行编译:

  • 首先确认你的cmake版本大于等于3.5:rhel7.6自带的cmake版本
    在这里插入图片描述
    版本太低,需要安装更高版本的cmake
    安装方法:在阿里云镜像站上下载cmake3.6的rpm包
    在安装的过程中遇到依赖性
    jsoncpp-devel
    jsoncpp-cpp
    (可在阿里云镜像站上找到)

  • 需要gcc-c++(yum安装)

  • 确认gcc版本为5.8以上
    rhel7自带的gcc版本不够,须下载更高版本
    可在centos中找到,所以配置Centos的yum源;

[base]
name=CentOS-os
baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/
gpgcheck=0


[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=http://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/
gpgcheck=0

[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=http://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=0

配置好了之后,进行安装gcc:

yum install devtoolset-7-gcc* -y

执行命令scl enable devtoolset-7 bash使之生效。

在biuld目录中进行编译:

cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql ##安装路径\
-DMYSQL_DATADIR=/data/mysql ##指定数据目录 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock##指定套接字文件 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 ##使用innodb引擎\
-DSYSCONFDIR=/etc ##指定配置目录\
-DENABLED_LOCAL_INFILE=1 ##支持本地大文件导入数据\
-DWITH_EXTRA_CHARSETS=all ##支持外部扩展字符集\
-DDEFAULT_CHARSET=utf8mb4 ##默认使用utf8mb4字符集\
-DDEFAULT_COLLATION=utf8mb4_0900_ai_ci \ 
-DWITH_BOOST=/root/mysql-8.0.21/boost/boost_1_72_0/##c++boost库 

编译成功后,执行make ,make之后执行makeinstall即可完成安装。

添加启动脚本:

[root@server1 mnt]# cd /usr/local/mysql/
[root@server1 mysql]# ls
bin      lib             LICENSE-test  README         run            var
docs     LICENSE         man           README.router  share
include  LICENSE.router  mysql-test    README-test    support-files
[root@server1 mysql]# cd support-files/
[root@server1 support-files]# ls
mysqld_multi.server  mysql-log-rotate  mysql.server
[root@server1 support-files]# cp mysql.server /etc/init.d/mysqld
  • 将安装目录中的support-file中的mysql.server复制到/etc/init.d/mysqld
  • 修改配置文件/etc/my.cnf:
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/data/mysql/mysql.sock

!includedir /etc/my.cnf.d
  • 为mysql注册一个用户:
useradd -M -d /usr/local/mysql/ -s /sbin/nologin mysql
  • 创建数据目录:
mkdir -p /data/mysql
  • 对数据目录进行授权
chown mysql.mysql /data/mysql/
  • 添加环境变量
[root@server1 bin]# pwd
/usr/local/mysql/bin

将命令的路径添加进环境变量。

vim ~/.bash_profile

在这里插入图片描述
执行

source ~/.bash_profile

使环境变量生效。

初始化

进行初始化时必须保证数据目录无数据!
以mysql身份进初始化:

mysqld --initialize --user=mysql
[root@server1 mysql]# mysqld --initialize --user=mysql
2020-08-23T07:07:47.516886Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.21) initializing of server in progress as process 30884
2020-08-23T07:07:47.544544Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2020-08-23T07:07:48.359732Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2020-08-23T07:07:50.963700Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: xNa!htR!=3RV

初始化完成后启动服务mysqld:

[root@server1 mysql]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/mysql/server1.err'.
. SUCCESS! 

以管理员身份登陆mysql:
在这里插入图片描述

修改管理员密码

mysql> alter user root@localhost identified by 'Xng+123456';
Query OK, 0 rows affected (0.00 sec)

更改完成后退出数据库,使用管理员身份进行登陆:
在这里插入图片描述

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值