ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【香菇带你学数据库】mysql8.0编译安装图文教程【建议收藏】 [打印本页]

作者: 小小小幸运    时间: 2024-12-5 09:08
标题: 【香菇带你学数据库】mysql8.0编译安装图文教程【建议收藏】
0.写在安装前面

本文以BClinux for euler 21.10(redhat/centos可以参考)为例。在本地内网(Linux主机无法连接互联网,能连接公网最好,不能也没关系)编译安装。
经过多次尝试,多次重装主机发现,目前Bclinux for openeuler不能安装mysql8的最新版本(centos7.x,centos8.x也不行)。
所以本次安装的mysql8的版本为mysql8.0.20
安装前请先确认自己的利用体系版本.主机规格等是否符合要求。mysql的最小要求配置要求为2核2G(如果同时运行其他程序则必要更高配置),安装至少必要给mysql预留30G空间
我的配置如下
  1. # 系统信息如下
  2. [root@localhost ~]# cat /etc/os-release
  3. NAME="BigCloud Enterprise Linux"
  4. VERSION="21.10 (LTS-SP2)"
  5. ID="bclinux"
  6. VERSION_ID="21.10"
  7. PRETTY_NAME="BigCloud Enterprise Linux For Euler 21.10 LTS"
  8. ANSI_COLOR="0;31"
  9. ## 主机内存
  10. [root@localhost ~]# free -g
  11.               total        used        free      shared  buff/cache   available
  12. Mem:             15           0          14           0           0          14
  13. Swap:             7           0           7
复制代码
请检查体系是否安装了gcc5.3及以上版本,cmake3.75以上版本
安装前必要先删除mariadb相干内容,尤其要删除/etc/my.cnf文件,mysql启动时会默认加载该配置文件,导致在安装参数里的设置无效,会默认加载原体系自带的mariadb目次,引发一系列的错误
请细致查看mysql的cmake预编译参数以及精确精确的mysql源码包
1. 准备利用

1.1 卸载已经安装的数据库

检查linux是否安装了mariadb和mysql数据库,新体系大概会自带mariadb数据库,mariadb数据库是MySQL的分支
   当一个体系已经安装了MariaDB时,直接尝试安装MySQL大概会导致冲突
  
  1. # 检查是否安装了mariadb
  2. yum list installed | grep mariadb*
  3. # 卸载mariadb
  4. yum remove mariadb*
  5. # 检查是否安装了mysql
  6. yum list installed | grep mysql*
  7. # 卸载mysql
  8. yum remove mysql*
复制代码
实行过程如下
  1. [root@localhost ~]# yum list installed | grep mariadb*
  2. mariadb-connector-c.x86_64                        3.0.6-7.oe1                                @anaconda
  3. [root@localhost ~]# yum remove mariadb*
  4. 依赖关系解决。
  5. =====================================================================================================
  6. Package                                             Architecture                           Version                                          Repository                                 Size
  7. =====================================================================================================
  8. 移除:
  9. mariadb-connector-c                                 x86_64                                 3.0.6-7.oe1                                      @anaconda                                 414 k
  10. 移除依赖的软件包:
  11. rsyslog-relp                                        x86_64                                 8.2006.0-6.oe1                                   @anaconda                                  63 k
  12. rsyslog-help                                        noarch                                 8.2006.0-6.oe1                                   @anaconda                                 7.0 M
  13. 事务概要
  14. =====================================================================================================
  15. 移除  9 软件包
  16. 将会释放空间:14 M
  17. 确定吗?[y/N]: Y
  18. 运行事务检查
  19. 事务检查成功。
  20. 运行事务测试
  21. 事务测试成功。
  22. 运行事务
  23.   准备中  :                                                                                                                                                                              1/1
  24.   运行脚本: rsyslog-relp-8.2006.0-6.oe1.x86_64                                                                                                                                           1/1
  25.   删除    : rsyslog-relp-8.2006.0-6.oe1.x86_64                                                                                                                                           1/9                                                                                             9/9
  26. 已移除:
  27.   libestr-0.1.11-1.oe1.x86_64        libfastjson-0.99.8-3.oe1.x86_64   libnet-1.2-1.oe1.x86_64              librelp-1.2.16-3.oe1.x86_64          mariadb-connector-c-3.0.6-7.oe1.x86_64  
  28.   net-snmp-libs-1:5.9-3.oe1.x86_64   rsyslog-8.2006.0-6.oe1.x86_64     rsyslog-help-8.2006.0-6.oe1.noarch   rsyslog-relp-8.2006.0-6.oe1.x86_64  
  29. 完毕!
  30. [root@localhost ~]# yum list installed | grep mysql*
  31. [root@localhost ~]# yum remove mysql*
  32. 未找到匹配的参数: mysql*
  33. 没有软件包需要移除。
  34. 依赖关系解决。
  35. 无需任何处理。
  36. 完毕!
复制代码
2. 配置yum源

   注释:若Linux主机可以访问公网,则只必要配置好公网repo源即可,若无法连接公网,则必要配置好本地repo源。不同类型用户大概需求不一样。这里默认大家利用本地iso搭建镜像yum源。
  其余环境请参考文章(已经足够详细)yum源配置,这一篇就够了!(包括本地,网络,本地共享yum源)
  当服务器无法访问公网大概所必要依赖无法在公网获取,我们可以通过
利用挂载本地iso镜像来获取我们必要的rpm包和依赖
2.1 本机单机yum源配置

   此处以挂载BClinux for openeuler 21.10镜像为例,每个人利用体系型号不同,请选择自己必要的版本
  牢记选择来源安全可靠的镜像下载
将下载好后的镜像上传到/mnt中
  1. [root@localhost mnt]# ls
  2. BCLinux-for-Euler-21.10-everything-x86_64.iso
复制代码
在/mnt目次下创建文件夹 BClinux
  1. [root@localhost mnt]# mkdir BClinux
复制代码
然后输入下面命令举行挂载
  1. mount -o loop /mnt/BCLinux-for-Euler-21.10-everything-x86_64.iso /mnt/BClinux[root@localhost mnt]# mount -o loop /mnt/BCLinux-for-Euler-21.10-everything-x86_64.iso /mnt/BClinux
  2. mount: /mnt/BClinux: WARNING: source write-protected, mounted read-only.
复制代码
  下个步骤中,关闭selinux必要重启,会导致本命令失效,必要重新实行即可
  2.2 repo文件配置

进入/etc/yum.repos.d/目次,
将之前的repo文件举行备份
  1. # 进入repo配置文件
  2. [root@localhost mnt]# cd /etc/yum.repos.d/
  3. # 将原来的repo文件进行备份
  4. [root@localhost yum.repos.d]# mv * *.bak
复制代码
然后创建新的repo源,输入以下命令
  1. # 复制下面的脚本输入
  2. [root@localhost yum.repos.d]# echo "
  3. > [local]
  4. > name=bendiyum
  5. > baseurl=file:///mnt/BClinux/
  6. > enabled=1
  7. > gpgcheck=0" > local.repo
  8. ## 执行
  9. yum clean all
  10. yum makecache
  11. yum repolist
复制代码
配置完成
  1. [root@localhost yum.repos.d]# yum makecache
  2. bendiyum                                                            473 MB/s |  14 MB     00:00   
  3. 上次元数据过期检查:0:00:02 前,执行于 2024年03月28日 星期四 00时28分50秒。
  4. 元数据缓存已建立。
  5. [root@localhost yum.repos.d]# yum repolist
  6. 仓库标识                                          仓库名称
  7. local                                             bendiyum
复制代码
尝试利用yum
  1. yum install -y tree
复制代码

本地yum源配置完成
3. 安装依赖

3.1 依赖包安装

译安装MySQL 8.0通常必要一些依赖包,这些依赖包确保编译过程中所需的工具和库都可用。
安装的依赖最低版本要求

   
  1. # 一键安装
  2. [root@localhost ~]# yum  install -y   lrzsz curl cmake telnet wget tar vim unzip zip gcc gcc-c++ git openssl-devel perl ncurses-devel bison-devel libaio libaio-devel libtirpc-devel rpcsvc-proto-devel rpcgen openssl
复制代码
若提示没有某个安装包,可以在https://www.rpmfind.net/linux/网站查找对应的安装包下载下来手动安装
  1. # 执行过程
  2. [root@localhost yum.repos.d]# yum -y install lrzsz curl telnet wget tar vim unzip zip gcc gcc-c++ gcc-devel openssl-devel perl ncurses-devel bison-devel libaio libaio-devel libtirpc-devel rpcsvc-proto-devel rpcgen libtirpc-devel rpcgen
  3. 上次元数据过期检查:0:00:43 前,执行于 2024年03月28日 星期四 00时30分48秒。
  4. 软件包 curl-7.71.1-7.oe1.x86_64 已安装。
  5. 软件包 wget-1.20.3-3.oe1.x86_64 已安装。
  6. 软件包 tar-2:1.32-2.oe1.x86_64 已安装。
  7. 软件包 vim-enhanced-2:8.2-1.oe1.x86_64 已安装。
  8. 软件包 unzip-6.0-45.oe1.x86_64 已安装。
  9. 软件包 zip-3.0-26.oe1.x86_64 已安装。
  10. 软件包 gcc-7.3.0-20210605.39.oe1.x86_64 已安装。
  11. 软件包 gcc-c++-7.3.0-20210605.39.oe1.x86_64 已安装。
  12. 未找到匹配的参数: gcc-devel
  13. 软件包 openssl-devel-1:1.1.1f-10.oe1.x86_64 已安装。
  14. 软件包 perl-4:5.28.3-6.oe1.x86_64 已安装。
  15. 软件包 libaio-0.3.112-1.oe1.x86_64 已安装。
  16. 错误:没有任何匹配: gcc-devel
  17. [root@localhost yum.repos.d]# yum -y install lrzsz curl telnet wget tar vim unzip zip gcc gcc-c++  openssl-devel perl ncurses-devel bison-devel libaio libaio-devel libtirpc-devel rpcsvc-proto-devel rpcgen libtirpc-devel rpcgen
  18. 上次元数据过期检查:0:01:24 前,执行于 2024年03月28日 星期四 00时30分48秒。
  19. 软件包 curl-7.71.1-7.oe1.x86_64 已安装。
  20. 软件包 wget-1.20.3-3.oe1.x86_64 已安装。
  21. 软件包 tar-2:1.32-2.oe1.x86_64 已安装。
  22. 软件包 vim-enhanced-2:8.2-1.oe1.x86_64 已安装。
  23. 软件包 unzip-6.0-45.oe1.x86_64 已安装。
  24. 软件包 zip-3.0-26.oe1.x86_64 已安装。
  25. 软件包 gcc-7.3.0-20210605.39.oe1.x86_64 已安装。
  26. 软件包 gcc-c++-7.3.0-20210605.39.oe1.x86_64 已安装。
  27. 软件包 openssl-devel-1:1.1.1f-10.oe1.x86_64 已安装。
  28. 软件包 perl-4:5.28.3-6.oe1.x86_64 已安装。
  29. 软件包 libaio-0.3.112-1.oe1.x86_64 已安装。
  30. 依赖关系解决。
  31. ====================================================================================================
  32. Package                    Architecture   Version                         Repository          Size
  33. ====================================================================================================
  34. 安装:
  35. bison-devel                x86_64         3.6.4-2.oe1                     everything          37 k
  36. libaio-devel               x86_64         0.3.112-1.oe1                   baseos              10 k
  37. libtirpc-devel             x86_64         1.2.6-1.oe1                     everything         134 k
  38. lrzsz                      x86_64         0.12.20-46.oe1                  baseos              82 k
  39. ncurses-devel              x86_64         6.2-2.oe1                       update             644 k
  40. rpcgen                     x86_64         1.4.2-1.oe1                     everything          44 k
  41. rpcsvc-proto-devel         x86_64         1.4.2-1.oe1                     everything          29 k
  42. telnet                     x86_64         1:0.17-76.oe1                   baseos              64 k
  43. 升级:
  44. cpp                        x86_64         7.3.0-2020033101.49.oe1         update             8.1 M
  45. curl                       x86_64         7.71.1-31.oe1.bclinux           update             128 k
  46. gcc                        x86_64         7.3.0-2020033101.49.oe1         update              13 M
  47. gcc-c++                    x86_64         7.3.0-2020033101.49.oe1         update             8.8 M
  48. libcurl                    x86_64         7.71.1-31.oe1.bclinux           update             250 k
  49. libgomp                    x86_64         7.3.0-2020033101.49.oe1         update             131 k
  50. libstdc++                  x86_64         7.3.0-2020033101.49.oe1         update             403 k
  51. libstdc++-devel            x86_64         7.3.0-2020033101.49.oe1         update             1.1 M
  52. ncurses                    x86_64         6.2-2.oe1                       update             922 k
  53. ncurses-base               noarch         6.2-2.oe1                       update              53 k
  54. ncurses-libs               x86_64         6.2-2.oe1                       update             283 k
  55. openssl                    x86_64         1:1.1.1t-11.oe1.bclinux         extras             445 k
  56. openssl-devel              x86_64         1:1.1.1t-11.oe1.bclinux         extras             1.7 M
  57. openssl-libs               x86_64         1:1.1.1t-11.oe1.bclinux         extras             1.3 M
  58. unzip                      x86_64         6.0-46.oe1                      update             121 k
  59. vim-common                 x86_64         2:8.2-22.oe1                    update             6.8 M
  60. vim-enhanced               x86_64         2:8.2-22.oe1                    update             1.4 M
  61. 安装弱的依赖:
  62. openssl-pkcs11             x86_64         0.4.10-1.oe1                    baseos              58 k
  63. 事务概要
  64. ====================================================================================================
  65. 安装   9 软件包
  66. 升级  17 软件包
  67. 总下载:46 M
复制代码
3.2 gcc和cmake3安装

安装mysql8必要gcc5.3及以上版本,cmake3.5.1以上版本
   如果升级gcc版本,可以查看本文inux环境下gcc编译安装
  1. # 检查gcc版本
  2. [root@localhost ~]# gcc -v
  3. 使用内建 specs。
  4. COLLECT_GCC=gcc
  5. COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/7.3.0/lto-wrapper
  6. 目标:x86_64-linux-gnu
  7. 线程模型:posix
  8. gcc 版本 7.3.0 (GCC)
  9. # 如果gcc版本已经达到5.3以上,跳过下面的步骤,否则需要升级gcc
  10. # 列出sgcc有哪些源可以用
  11. [root@localhost ~]# yum list|grep gcc
  12. gcc.x86_64                                              7.3.0-2020033101.49.oe1                            @update   
  13. gcc-c++.x86_64                                          7.3.0-2020033101.49.oe1                            @update   
  14. # 安装gcc7.3.0
  15. yum install -y gcc
  16. [root@localhost ~]# yum install -y gcc
  17. 上次元数据过期检查:2:41:09 前,执行于 2024年07月12日 星期五 13时36分41秒。
  18. 软件包 gcc-7.3.0-2020033101.49.oe1.x86_64 已安装。
  19. 依赖关系解决。
  20. 无需任何处理。
  21. 完毕!
复制代码
升级cmake
  1. # 检查cmake3版本
  2. [root@localhost ~]# cmake3 --version
  3. cmake version 3.16.5
  4. CMake suite maintained and supported by Kitware (kitware.com/cmake).
  5. # 如果cmake3版本已经达到3.75以上,跳过下面的步骤,否则需要升级cmake3
  6. # 列出有哪些源可以用
  7. [root@localhost ~]# yum list | grep cmake
  8. cmake.x86_64                                            3.16.5-5.oe1                                       @baseos   
  9. cmake-data.noarch                                       3.16.5-5.oe1                                       @baseos   
  10. cmake-filesystem.x86_64                                 3.16.5-5.oe1                                       @baseos   
  11. cmake-help.noarch                                       3.16.5-5.oe1                                       @baseos   
  12. cmake-rpm-macros.noarch                                 3.16.5-5.oe1                                       @baseos   
  13. cmake-gui.x86_64                                        3.16.5-5.oe1                                       everything
复制代码
在上述查找本地yum源发现cmake最高版本为3.16,我们不必要下载cmake对应源码举行编译安装
   如果必要编译安装cmake,可以参考本篇文章inux环境下cmake编译安装
  4. 主机利用配置

4.1 关闭防火墙

  1. # 查看防火墙是状态
  2. [root@localhost ~]# systemctl status firewalld
  3. ● firewalld.service - firewalld - dynamic firewall daemon
  4.    Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
  5.    Active: active (running) since Fri 2024-07-12 13:26:09 CST; 3h 15min ago
  6.      Docs: man:firewalld(1)
  7. Main PID: 1137 (firewalld)
  8.     Tasks: 2
  9.    Memory: 36.7M
  10.    CGroup: /system.slice/firewalld.service
  11.            └─1137 /usr/bin/python3 /usr/sbin/firewalld --nofork --nopid
  12. # 关闭防火墙
  13. [root@localhost ~]# systemctl stop firewalld
  14. #取消开机自启动
  15. [root@localhost ~]# systemctl disable firewalld
  16. Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
  17. Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
复制代码
4.2 关闭selinux

  1. [root@localhost ~]# sed -i 's/SELINUX\=enforcing/SELINUX\=disabled/g' /etc/selinux/config
  2. ## 重启后生效
复制代码
5. 安装mysql

   经过多次尝试,多次重装主机发现,目前Bclinux for openeuler不能安装mysql8的最新版本(centos7.x,centos8.x也不行)。
  所以本次安装的mysql8的版本为mysql8.0.20
  5.1 下载并解压mysql源码

mysql8.0下载地址:https://downloads.mysql.com/archives/community/

选择不登录下载

将源码上传到Linux服务器的/soft目次
   在本地上传文件到Linux主机,可以通过利用lrzsz
  关于怎样上传本地文件到Linux主机,可以参考如下文章:关于怎样上传本地文件到Linux主机
  登录mysql用户
  1. # 进入/usr/local/src目录
  2. [root@localhost ~]# cd /usr/local/src
  3. # 上传mysql-8.0/mysql-boost-8.0.20.tar.gz
  4. # 若Linux主机可以连接公网或者通过下方方式直接在linux主机下载
  5. [root@localhost src]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-8.0.20.tar.gz
  6. # 下载完成后解压,并进入解压文件夹
  7. [root@localhost src]# tar -xvzf mysql-boost-8.0.20.tar.gz
  8. [root@localhost src]# cd mysql-8.0.20/
  9. # 创建编译文件夹并进入
  10. [root@localhost mysql-8.0.20]# mkdir build
  11. [root@localhost mysql-8.0.20]# cd build/
复制代码
  tips:编译mysql-boost-8.0.20时,为什么要单独创建编译文件夹build?
  答:编译过程中会产生大量的临时文件和对象文件。将这些文件与源代码分开,可以保持源代码目次的整洁,使得管理和维护变得更加轻易。当你必要清理编译过程中产生的全部文件时,只必要删除这个单独的编译目次即可,而不会影响到源代码文件。
  1. # 构建编译
  2. [root@localhost build]# cmake3 ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0 -DWITH_SYSTEMD=1 -DDOWNLOAD_BOOST=0 -DWITH_BOOST=../boost
复制代码
  解释阐明
  cmake3 …/ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0 -DWITH_SYSTEMD=1 -DDOWNLOAD_BOOST=0 -DWITH_BOOST=…/boost
  这段命令是用于配置和编译 MySQL 数据库的 CMake 命令。CMake 是一个跨平台的自动化构建体系,它利用配置文件(CMakeLists.txt)来天生尺度的构建文件,如 Makefile 或项目文件,这些文件可以被用于编译器环境中。
  下面是命令的详细解释:
  
  1. # 编译
  2. [root@localhost build]# make -j$(nproc)
  3. # 编译过程较长。大约10min-2h,因主机性能而异
复制代码
  Tips:编译指令利用-j$(nproc)的阐明
  在编译大型项目时,利用 make 命令的 -j 选项可以加速编译过程。-j 选项用于指定 make 同时运行的作业数。当你利用 -j$(nproc) 时,这里的 $(nproc) 是一个命令替换,它会被替换成当前体系的处置处罚器焦点数。
  nproc 命令会输出当前可用的处置处罚器焦点数。因此,-j$(nproc) 现实上是在告诉 make 同时运行与你的处置处罚器焦点数相同数目的作业。
  这样做的利益是可以充实利用多核处置处罚器的并行处置处罚能力,从而加速编译过程。如果你的体系有多个焦点,利用 -j$(nproc) 可以让编译过程更加高效。
  1. # 安装Mysql
  2. [root@localhost build]# sudo make install
复制代码
安装完成
5.2 创建并利用mysql用户

   起首要创建mysql用户并赋予sudo权限
  1. # 创建用户mysql并设置密码
  2. [root@localhost bin]# useradd -m mysql
  3. [root@localhost bin]# passwd mysql
  4. 更改用户 mysql 的密码 。
  5. 新的 密码:
  6. 重新输入新的 密码:
  7. passwd:所有的身份验证令牌已经成功更新。
  8. # 创建源码存放目录
  9. [root@localhost /]# mkdir /soft
  10. # 创建mysql安装目录并赋权给mysql
  11. [root@localhost ~]# mkdir  /usr/local/mysql/
  12. [root@localhost ~]# chown -R mysql:mysql /usr/local/mysql/
  13. # 创建mysql数据存放文件夹并赋权给mysql
  14. [root@localhost ~]# mkdir -p /data/mysql
  15. [root@localhost ~]# chown -R mysql:mysql /data/mysql/
  16. # 创建日志文件存放的目录和pid文件存放的目录,并赋权给mysql用户
  17. [root@localhost ~]# mkdir -p /var/log/mysqld /var/run/mysqld
  18. [root@localhost ~]# chown -R mysql:mysql /var/log/mysqld
  19. [root@localhost ~]# chown -R mysql:mysql /var/run/mysqld
复制代码
编辑*/etc/my.cnf*配置文件
  1. [root@localhost ~]# vi /etc/my.cnf
  2. # 添加下面内容
  3. [mysqld]
  4. basedir=/usr/local/mysql
  5. datadir=/data/mysql
  6. socket=/tmp/mysql.sock
  7. [mysqld_safe]
  8. log-error=/var/log/mysqld/mysqld.log
  9. pid-file=/var/run/mysqld/mysql.pid
复制代码
赋予mysql用户sudo权限
  1. # 编辑/etc/sudoers文件
  2. [root@localhost /]# vi /etc/sudoers
  3. # 找到这一行 root    ALL=(ALL)       ALL
  4. # 在下面添加一行
  5. mysql    ALL=(ALL)       ALL
  6. # 保存退出
复制代码

测试是否已经给mysql配置sudo权限乐成
  1. [root@localhost /]# su - mysql[mysql@localhost ~]$ sudo yum install -y tree
  2. We trust you have received the usual lecture from the local SystemAdministrator. It usually boils down to these three things:    #1) Respect the privacy of others.    #2) Think before you type.    #3) With great power comes great responsibility.[sudo] password for mysql: Last metadata expiration check: 0:37:52 ago on Fri 12 Jul 2024 04:38:07 PM CST.Package tree-1.8.0-1.oe1.x86_64 is already installed.Dependencies resolved.Nothing to do.Complete!
复制代码
配置环境变量,方便利用MySQL的命令
  1. [root@localhost ~]# vi /etc/profile
  2. export MYSQL_HOME=/usr/local/mysql
  3. export PATH=$PATH:$MYSQL_HOME/bin
  4. [root@localhost ~]# source /etc/profile
  5. [root@localhost ~]# mysql --version  # 验证配置是否成功
  6. mysql  Ver 8.0.20 for Linux on x86_64 (Source distribution)
复制代码
6. 初始化Mysql

初始化数据库
  1. # 初始化数据库
  2. [root@localhost ~]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql
复制代码

初始化乐成后会天生root账户的默认暗码。将该暗码复制并保存,因为后面必要利用该暗码登录到MySQL中修改暗码。
将MySQL天生的启动文件复制到/usr/lib/systemd/system/目次下
  1. [root@localhost ~]# cp /usr/local/src/mysql-8.0.20/build/scripts/mysqld.service /usr/lib/systemd/system/
  2. [root@localhost ~]# chown 775 /usr/lib/systemd/system/mysqld.service
复制代码
  当MySQL的启动文件(如mysqld.service)被放置在/usr/lib/systemd/system/目次下时,systemd能够自动识别并管理这个服务。可以利用systemctl命令来启动、停止、重启、查看状态、设置开机自启等MySQL服务。
  启动Mysql服务
  1. [root@localhost ~]# systemctl start mysqld
  2. #查看3306端口是否已正常监听:
  3. [root@localhost mysql]# netstat -lntp |grep 3306
  4. tcp6       0      0 :::3306                 :::*                    LISTEN      266278/mysqld      
  5. tcp6       0      0 :::33060                :::*                    LISTEN      266278/mysqld  
复制代码
利用默认暗码登录MySQL,并重置暗码及开放远程登录
  1. [root@localhost mysql]# mysql -uroot -p
  2. Enter password:
  3. Welcome to the MySQL monitor.  Commands end with ; or \g.
  4. Your MySQL connection id is 8
  5. Server version: 8.0.20
  6. Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
  7. Oracle is a registered trademark of Oracle Corporation and/or its
  8. affiliates. Other names may be trademarks of their respective
  9. owners.
  10. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  11. mysql>
  12. # 修改初始密码
  13. mysql>  ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypasswd';
  14. Query OK, 0 rows affected (0.00 sec)
  15. # 允许远程登录
  16. mysql> use mysql;
  17. Database changed
  18. mysql> update user set host ='%' where user='%';
  19. Query OK, 0 rows affected (0.00 sec)
  20. Rows matched: 0  Changed: 0  Warnings: 0
  21. #  刷新修改
  22. mysql> FLUSH PRIVILEGES;
  23. Query OK, 0 rows affected (0.00 sec)
  24. # 退出mysql
  25. mysql>exit
复制代码
  1. # 设置mysql开机自启动
  2. [root@localhost mysql]# systemctl enable mysqld
  3. Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.
复制代码
MySQL源码编译安装已经配置完毕即可利用。
在本地Windows验证远程登录并写入数据

  1. USE mysql;
  2. CREATE TABLE xianggu (  
  3.     id INT PRIMARY KEY,  
  4.     NAME VARCHAR(100),  
  5.     age INT,  
  6.     gender VARCHAR(10)  
  7. );
  8. INSERT INTO xianggu (id, NAME, age, gender) VALUES (1, '张三', 20, '男');  
  9. INSERT INTO xianggu (id, NAME, age, gender) VALUES (2, '李四', 25, '女');  
  10. INSERT INTO xianggu (id, NAME, age, gender) VALUES (3, '王五', 30, '男');
复制代码
在Linux主机查看数据变更
  1. mysql> use mysql;
  2. Database changed
  3. mysql> select * from xianggu;
  4. +----+--------+------+--------+
  5. | id | name   | age  | gender |
  6. +----+--------+------+--------+
  7. |  1 | 张三   |   20 | 男     |
  8. |  2 | 李四   |   25 | 女     |
  9. |  3 | 王五   |   30 | 男     |
  10. +----+--------+------+--------+
  11. 3 rows in set (0.00 sec)
复制代码
7. 报错办理

7.1 预编译过程报错

CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:114 (MESSAGE):
Could not find rpcgen
Call Stack (most recent call first):
plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
大概是没有安装乐成某个依赖,手动安装即可

大概是没有安装乐成某个依赖,手动安装即可
7.2 make: [Makefile:166: all] Error 2

  1. [ 21%] Built target ut0frags-t
  2. [ 21%] Building CXX object router/src/harness/src/CMakeFiles/harness-archive.dir/config_option.cc.o
  3. In file included from /soft/mysql-8.0.38/router/src/harness/src/config_option.cc:26:0:
  4. /soft/mysql-8.0.38/router/src/harness/src/../include/mysql/harness/config_option.h:29:10: fatal error: charconv: No such file or directory
  5. #include <charconv>  // from_chars
  6.           ^~~~~~~~~~
  7. compilation terminated.
  8. make[2]: *** [router/src/harness/src/CMakeFiles/harness-archive.dir/build.make:139: router/src/harness/src/CMakeFiles/harness-archive.dir/config_option.cc.o] Error 1
  9. make[1]: *** [CMakeFiles/Makefile2:45528: router/src/harness/src/CMakeFiles/harness-archive.dir/all] Error 2
  10. make[1]: *** Waiting for unfinished jobs....
  11. [ 21%] Building CXX object router/src/connection_pool/src/CMakeFiles/connection_pool.dir/connection_pool_component.cc.o
  12. [ 21%] Building CXX object libbinlogstandalone/src/CMakeFiles/binlogstandalone_static.dir/__/__/libbinlogevents/src/uuid.cpp.o
  13. [ 21%] Linking CXX static library ../lib/libbinlogstandalone.a
  14. [ 21%] Built target binlogstandalone_static
  15. [ 21%] Linking CXX shared library ../../../../library_output_directory/libmysqlrouter_connection_pool.so
  16. [ 21%] Built target connection_pool
  17. [ 21%] Linking CXX executable ../../../../runtime_output_directory/routertest_mysql_protocol_classic_protocol_message
  18. [ 21%] Built target routertest_mysql_protocol_classic_protocol_message
  19. make: *** [Makefile:166: all] Error 2
复制代码
编译器大概不支持 C++17大概没有精确配置以利用 C++17 尺度
办理方法:
  1. ## 在编译文件目录中执行
  2. cmake -S . -B build -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON
复制代码
清理之前的编译后重新编译
  1. make clean
复制代码
我出现这个报错时安装的是mysql8.0.38.尝试许多次重装体系。最终选择安装Mysql8.0.20版本
8. 参考链接


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4