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空间
我的配置如下
- # 系统信息如下
- [root@localhost ~]# cat /etc/os-release
- NAME="BigCloud Enterprise Linux"
- VERSION="21.10 (LTS-SP2)"
- ID="bclinux"
- VERSION_ID="21.10"
- PRETTY_NAME="BigCloud Enterprise Linux For Euler 21.10 LTS"
- ANSI_COLOR="0;31"
- ## 主机内存
- [root@localhost ~]# free -g
- total used free shared buff/cache available
- Mem: 15 0 14 0 0 14
- 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大概会导致冲突
- 包依赖冲突:MariaDB和MySQL的某些文件大概具有相同的名称或路径,这会导致包管理器无法精确处置处罚依赖关系。
- 服务冲突:两个数据库服务大概尝试监听相同的端口(通常是3306),这会导致服务启动失败或不稳定。
- 配置冲突:MariaDB和MySQL的配置文件大概位于相同的位置,比如/etc/my.cnf,这会使得配置混乱。
- # 检查是否安装了mariadb
- yum list installed | grep mariadb*
- # 卸载mariadb
- yum remove mariadb*
- # 检查是否安装了mysql
- yum list installed | grep mysql*
- # 卸载mysql
- yum remove mysql*
复制代码 实行过程如下
- [root@localhost ~]# yum list installed | grep mariadb*
- mariadb-connector-c.x86_64 3.0.6-7.oe1 @anaconda
- [root@localhost ~]# yum remove mariadb*
- 依赖关系解决。
- =====================================================================================================
- Package Architecture Version Repository Size
- =====================================================================================================
- 移除:
- mariadb-connector-c x86_64 3.0.6-7.oe1 @anaconda 414 k
- 移除依赖的软件包:
- rsyslog-relp x86_64 8.2006.0-6.oe1 @anaconda 63 k
- rsyslog-help noarch 8.2006.0-6.oe1 @anaconda 7.0 M
- 事务概要
- =====================================================================================================
- 移除 9 软件包
- 将会释放空间:14 M
- 确定吗?[y/N]: Y
- 运行事务检查
- 事务检查成功。
- 运行事务测试
- 事务测试成功。
- 运行事务
- 准备中 : 1/1
- 运行脚本: rsyslog-relp-8.2006.0-6.oe1.x86_64 1/1
- 删除 : rsyslog-relp-8.2006.0-6.oe1.x86_64 1/9 9/9
- 已移除:
- 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
- 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
- 完毕!
- [root@localhost ~]# yum list installed | grep mysql*
- [root@localhost ~]# yum remove mysql*
- 未找到匹配的参数: mysql*
- 没有软件包需要移除。
- 依赖关系解决。
- 无需任何处理。
- 完毕!
复制代码 2. 配置yum源
注释:若Linux主机可以访问公网,则只必要配置好公网repo源即可,若无法连接公网,则必要配置好本地repo源。不同类型用户大概需求不一样。这里默认大家利用本地iso搭建镜像yum源。
其余环境请参考文章(已经足够详细)yum源配置,这一篇就够了!(包括本地,网络,本地共享yum源)
当服务器无法访问公网大概所必要依赖无法在公网获取,我们可以通过
利用挂载本地iso镜像来获取我们必要的rpm包和依赖
2.1 本机单机yum源配置
此处以挂载BClinux for openeuler 21.10镜像为例,每个人利用体系型号不同,请选择自己必要的版本
牢记选择来源安全可靠的镜像下载
将下载好后的镜像上传到/mnt中
- [root@localhost mnt]# ls
- BCLinux-for-Euler-21.10-everything-x86_64.iso
复制代码 在/mnt目次下创建文件夹 BClinux
- [root@localhost mnt]# mkdir BClinux
复制代码 然后输入下面命令举行挂载
- 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
- mount: /mnt/BClinux: WARNING: source write-protected, mounted read-only.
复制代码 下个步骤中,关闭selinux必要重启,会导致本命令失效,必要重新实行即可
2.2 repo文件配置
进入/etc/yum.repos.d/目次,
将之前的repo文件举行备份
- # 进入repo配置文件
- [root@localhost mnt]# cd /etc/yum.repos.d/
- # 将原来的repo文件进行备份
- [root@localhost yum.repos.d]# mv * *.bak
复制代码 然后创建新的repo源,输入以下命令
- # 复制下面的脚本输入
- [root@localhost yum.repos.d]# echo "
- > [local]
- > name=bendiyum
- > baseurl=file:///mnt/BClinux/
- > enabled=1
- > gpgcheck=0" > local.repo
- ## 执行
- yum clean all
- yum makecache
- yum repolist
复制代码 配置完成
- [root@localhost yum.repos.d]# yum makecache
- bendiyum 473 MB/s | 14 MB 00:00
- 上次元数据过期检查:0:00:02 前,执行于 2024年03月28日 星期四 00时28分50秒。
- 元数据缓存已建立。
- [root@localhost yum.repos.d]# yum repolist
- 仓库标识 仓库名称
- local bendiyum
复制代码 尝试利用yum
本地yum源配置完成
3. 安装依赖
3.1 依赖包安装
译安装MySQL 8.0通常必要一些依赖包,这些依赖包确保编译过程中所需的工具和库都可用。
安装的依赖最低版本要求
- gcc 和 gcc-c++ 用于编译C和C++代码。
- cmake 用于构建MySQL的源代码。
- bison 用于解析MySQL的语法。
- perl 和相干的Perl模块,如 perl-Module-Build, perl-Module-Pluggable, perl-Pod-Escapes, perl-Pod-Simple, perl-libs, perl-version,这些是Perl的开发和运行时依赖。
- libaio 用于异步I/O利用。
- ncurses-devel 用于支持字符界面用户交互。
- openssl 和 openssl-devel 用于SSL/TLS支持。
- zlib-devel 用于数据压缩息争压缩。
- flex 用于天生扫描器程序。
- # 一键安装
- [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/网站查找对应的安装包下载下来手动安装
- # 执行过程
- [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
- 上次元数据过期检查:0:00:43 前,执行于 2024年03月28日 星期四 00时30分48秒。
- 软件包 curl-7.71.1-7.oe1.x86_64 已安装。
- 软件包 wget-1.20.3-3.oe1.x86_64 已安装。
- 软件包 tar-2:1.32-2.oe1.x86_64 已安装。
- 软件包 vim-enhanced-2:8.2-1.oe1.x86_64 已安装。
- 软件包 unzip-6.0-45.oe1.x86_64 已安装。
- 软件包 zip-3.0-26.oe1.x86_64 已安装。
- 软件包 gcc-7.3.0-20210605.39.oe1.x86_64 已安装。
- 软件包 gcc-c++-7.3.0-20210605.39.oe1.x86_64 已安装。
- 未找到匹配的参数: gcc-devel
- 软件包 openssl-devel-1:1.1.1f-10.oe1.x86_64 已安装。
- 软件包 perl-4:5.28.3-6.oe1.x86_64 已安装。
- 软件包 libaio-0.3.112-1.oe1.x86_64 已安装。
- 错误:没有任何匹配: gcc-devel
- [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
- 上次元数据过期检查:0:01:24 前,执行于 2024年03月28日 星期四 00时30分48秒。
- 软件包 curl-7.71.1-7.oe1.x86_64 已安装。
- 软件包 wget-1.20.3-3.oe1.x86_64 已安装。
- 软件包 tar-2:1.32-2.oe1.x86_64 已安装。
- 软件包 vim-enhanced-2:8.2-1.oe1.x86_64 已安装。
- 软件包 unzip-6.0-45.oe1.x86_64 已安装。
- 软件包 zip-3.0-26.oe1.x86_64 已安装。
- 软件包 gcc-7.3.0-20210605.39.oe1.x86_64 已安装。
- 软件包 gcc-c++-7.3.0-20210605.39.oe1.x86_64 已安装。
- 软件包 openssl-devel-1:1.1.1f-10.oe1.x86_64 已安装。
- 软件包 perl-4:5.28.3-6.oe1.x86_64 已安装。
- 软件包 libaio-0.3.112-1.oe1.x86_64 已安装。
- 依赖关系解决。
- ====================================================================================================
- Package Architecture Version Repository Size
- ====================================================================================================
- 安装:
- bison-devel x86_64 3.6.4-2.oe1 everything 37 k
- libaio-devel x86_64 0.3.112-1.oe1 baseos 10 k
- libtirpc-devel x86_64 1.2.6-1.oe1 everything 134 k
- lrzsz x86_64 0.12.20-46.oe1 baseos 82 k
- ncurses-devel x86_64 6.2-2.oe1 update 644 k
- rpcgen x86_64 1.4.2-1.oe1 everything 44 k
- rpcsvc-proto-devel x86_64 1.4.2-1.oe1 everything 29 k
- telnet x86_64 1:0.17-76.oe1 baseos 64 k
- 升级:
- cpp x86_64 7.3.0-2020033101.49.oe1 update 8.1 M
- curl x86_64 7.71.1-31.oe1.bclinux update 128 k
- gcc x86_64 7.3.0-2020033101.49.oe1 update 13 M
- gcc-c++ x86_64 7.3.0-2020033101.49.oe1 update 8.8 M
- libcurl x86_64 7.71.1-31.oe1.bclinux update 250 k
- libgomp x86_64 7.3.0-2020033101.49.oe1 update 131 k
- libstdc++ x86_64 7.3.0-2020033101.49.oe1 update 403 k
- libstdc++-devel x86_64 7.3.0-2020033101.49.oe1 update 1.1 M
- ncurses x86_64 6.2-2.oe1 update 922 k
- ncurses-base noarch 6.2-2.oe1 update 53 k
- ncurses-libs x86_64 6.2-2.oe1 update 283 k
- openssl x86_64 1:1.1.1t-11.oe1.bclinux extras 445 k
- openssl-devel x86_64 1:1.1.1t-11.oe1.bclinux extras 1.7 M
- openssl-libs x86_64 1:1.1.1t-11.oe1.bclinux extras 1.3 M
- unzip x86_64 6.0-46.oe1 update 121 k
- vim-common x86_64 2:8.2-22.oe1 update 6.8 M
- vim-enhanced x86_64 2:8.2-22.oe1 update 1.4 M
- 安装弱的依赖:
- openssl-pkcs11 x86_64 0.4.10-1.oe1 baseos 58 k
- 事务概要
- ====================================================================================================
- 安装 9 软件包
- 升级 17 软件包
- 总下载:46 M
复制代码 3.2 gcc和cmake3安装
安装mysql8必要gcc5.3及以上版本,cmake3.5.1以上版本
如果升级gcc版本,可以查看本文 inux环境下gcc编译安装
- # 检查gcc版本
- [root@localhost ~]# gcc -v
- 使用内建 specs。
- COLLECT_GCC=gcc
- COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/7.3.0/lto-wrapper
- 目标:x86_64-linux-gnu
- 线程模型:posix
- gcc 版本 7.3.0 (GCC)
- # 如果gcc版本已经达到5.3以上,跳过下面的步骤,否则需要升级gcc
- # 列出sgcc有哪些源可以用
- [root@localhost ~]# yum list|grep gcc
- gcc.x86_64 7.3.0-2020033101.49.oe1 @update
- gcc-c++.x86_64 7.3.0-2020033101.49.oe1 @update
- # 安装gcc7.3.0
- yum install -y gcc
- [root@localhost ~]# yum install -y gcc
- 上次元数据过期检查:2:41:09 前,执行于 2024年07月12日 星期五 13时36分41秒。
- 软件包 gcc-7.3.0-2020033101.49.oe1.x86_64 已安装。
- 依赖关系解决。
- 无需任何处理。
- 完毕!
复制代码 升级cmake
- # 检查cmake3版本
- [root@localhost ~]# cmake3 --version
- cmake version 3.16.5
- CMake suite maintained and supported by Kitware (kitware.com/cmake).
- # 如果cmake3版本已经达到3.75以上,跳过下面的步骤,否则需要升级cmake3
- # 列出有哪些源可以用
- [root@localhost ~]# yum list | grep cmake
- cmake.x86_64 3.16.5-5.oe1 @baseos
- cmake-data.noarch 3.16.5-5.oe1 @baseos
- cmake-filesystem.x86_64 3.16.5-5.oe1 @baseos
- cmake-help.noarch 3.16.5-5.oe1 @baseos
- cmake-rpm-macros.noarch 3.16.5-5.oe1 @baseos
- cmake-gui.x86_64 3.16.5-5.oe1 everything
复制代码 在上述查找本地yum源发现cmake最高版本为3.16,我们不必要下载cmake对应源码举行编译安装
如果必要编译安装cmake,可以参考本篇文章 inux环境下cmake编译安装
4. 主机利用配置
4.1 关闭防火墙
- # 查看防火墙是状态
- [root@localhost ~]# systemctl status firewalld
- ● firewalld.service - firewalld - dynamic firewall daemon
- Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
- Active: active (running) since Fri 2024-07-12 13:26:09 CST; 3h 15min ago
- Docs: man:firewalld(1)
- Main PID: 1137 (firewalld)
- Tasks: 2
- Memory: 36.7M
- CGroup: /system.slice/firewalld.service
- └─1137 /usr/bin/python3 /usr/sbin/firewalld --nofork --nopid
- # 关闭防火墙
- [root@localhost ~]# systemctl stop firewalld
- #取消开机自启动
- [root@localhost ~]# systemctl disable firewalld
- Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
- Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
复制代码 4.2 关闭selinux
- [root@localhost ~]# sed -i 's/SELINUX\=enforcing/SELINUX\=disabled/g' /etc/selinux/config
- ## 重启后生效
复制代码 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用户
- # 进入/usr/local/src目录
- [root@localhost ~]# cd /usr/local/src
- # 上传mysql-8.0/mysql-boost-8.0.20.tar.gz
- # 若Linux主机可以连接公网或者通过下方方式直接在linux主机下载
- [root@localhost src]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-8.0.20.tar.gz
- # 下载完成后解压,并进入解压文件夹
- [root@localhost src]# tar -xvzf mysql-boost-8.0.20.tar.gz
- [root@localhost src]# cd mysql-8.0.20/
- # 创建编译文件夹并进入
- [root@localhost mysql-8.0.20]# mkdir build
- [root@localhost mysql-8.0.20]# cd build/
复制代码 tips:编译mysql-boost-8.0.20时,为什么要单独创建编译文件夹build?
答:编译过程中会产生大量的临时文件和对象文件。将这些文件与源代码分开,可以保持源代码目次的整洁,使得管理和维护变得更加轻易。当你必要清理编译过程中产生的全部文件时,只必要删除这个单独的编译目次即可,而不会影响到源代码文件。
- # 构建编译
- [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 或项目文件,这些文件可以被用于编译器环境中。
下面是命令的详细解释:
- cmake3 ../:这是告诉 CMake 利用当前目次的上一级目次中的 CMakeLists.txt 文件。cmake3 大概是特定体系上的 CMake 版本3的别名。
- -DCMAKE_INSTALL_PREFIX=/usr/local/mysql:设置安装目次为 /usr/local/mysql。
- -DMYSQL_DATADIR=/data/mysql:设置 MySQL 数据库文件的存储目次为 /data/mysql。
- -DSYSCONFDIR=/etc:设置配置文件目次为 /etc。
- -DMYSQL_USER=mysql:设置运行 MySQL 服务的用户为 mysql。
- -DWITH_MYISAM_STORAGE_ENGINE=1:启用 MyISAM 存储引擎。
- -DWITH_INNOBASE_STORAGE_ENGINE=1:启用 InnoDB 存储引擎。
- -DMYSQL_UNIX_ADDR=/tmp/mysql.sock:设置 Unix socket 文件的路径为 /tmp/mysql.sock。
- -DMYSQL_TCP_PORT=3306:设置 MySQL 服务监听的 TCP 端口为 3306。
- -DEXTRA_CHARSETS=all:安装全部额外的字符集。
- -DDEFAULT_CHARSET=utf8mb4:设置默认字符集为 utf8mb4。
- -DDEFAULT_COLLATION=utf8mb4_general_ci:设置默认排序规则为 utf8mb4_general_ci。
- -DWITH_DEBUG=0:禁用调试模式。
- -DMYSQL_MAINTAINER_MODE=0:禁用维护者模式。
- -DWITH_SYSTEMD=1:启用对 systemd 的支持。
- -DDOWNLOAD_BOOST=0:不自动下载 Boost 库。
- -DWITH_BOOST=../boost:指定 Boost 库的位置为当前目次的上一级目次中的 boost 文件夹。
- # 编译
- [root@localhost build]# make -j$(nproc)
- # 编译过程较长。大约10min-2h,因主机性能而异
复制代码 Tips:编译指令利用-j$(nproc)的阐明
在编译大型项目时,利用 make 命令的 -j 选项可以加速编译过程。-j 选项用于指定 make 同时运行的作业数。当你利用 -j$(nproc) 时,这里的 $(nproc) 是一个命令替换,它会被替换成当前体系的处置处罚器焦点数。
nproc 命令会输出当前可用的处置处罚器焦点数。因此,-j$(nproc) 现实上是在告诉 make 同时运行与你的处置处罚器焦点数相同数目的作业。
这样做的利益是可以充实利用多核处置处罚器的并行处置处罚能力,从而加速编译过程。如果你的体系有多个焦点,利用 -j$(nproc) 可以让编译过程更加高效。
- # 安装Mysql
- [root@localhost build]# sudo make install
复制代码 安装完成
5.2 创建并利用mysql用户
起首要创建mysql用户并赋予sudo权限
- # 创建用户mysql并设置密码
- [root@localhost bin]# useradd -m mysql
- [root@localhost bin]# passwd mysql
- 更改用户 mysql 的密码 。
- 新的 密码:
- 重新输入新的 密码:
- passwd:所有的身份验证令牌已经成功更新。
- # 创建源码存放目录
- [root@localhost /]# mkdir /soft
- # 创建mysql安装目录并赋权给mysql
- [root@localhost ~]# mkdir /usr/local/mysql/
- [root@localhost ~]# chown -R mysql:mysql /usr/local/mysql/
- # 创建mysql数据存放文件夹并赋权给mysql
- [root@localhost ~]# mkdir -p /data/mysql
- [root@localhost ~]# chown -R mysql:mysql /data/mysql/
- # 创建日志文件存放的目录和pid文件存放的目录,并赋权给mysql用户
- [root@localhost ~]# mkdir -p /var/log/mysqld /var/run/mysqld
- [root@localhost ~]# chown -R mysql:mysql /var/log/mysqld
- [root@localhost ~]# chown -R mysql:mysql /var/run/mysqld
复制代码 编辑*/etc/my.cnf*配置文件
- [root@localhost ~]# vi /etc/my.cnf
- # 添加下面内容
- [mysqld]
- basedir=/usr/local/mysql
- datadir=/data/mysql
- socket=/tmp/mysql.sock
- [mysqld_safe]
- log-error=/var/log/mysqld/mysqld.log
- pid-file=/var/run/mysqld/mysql.pid
复制代码 赋予mysql用户sudo权限
- # 编辑/etc/sudoers文件
- [root@localhost /]# vi /etc/sudoers
- # 找到这一行 root ALL=(ALL) ALL
- # 在下面添加一行
- mysql ALL=(ALL) ALL
- # 保存退出
复制代码
测试是否已经给mysql配置sudo权限乐成
- [root@localhost /]# su - mysql[mysql@localhost ~]$ sudo yum install -y tree
- 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的命令
- [root@localhost ~]# vi /etc/profile
- export MYSQL_HOME=/usr/local/mysql
- export PATH=$PATH:$MYSQL_HOME/bin
- [root@localhost ~]# source /etc/profile
- [root@localhost ~]# mysql --version # 验证配置是否成功
- mysql Ver 8.0.20 for Linux on x86_64 (Source distribution)
复制代码 6. 初始化Mysql
初始化数据库
- # 初始化数据库
- [root@localhost ~]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql
复制代码
初始化乐成后会天生root账户的默认暗码。将该暗码复制并保存,因为后面必要利用该暗码登录到MySQL中修改暗码。
将MySQL天生的启动文件复制到/usr/lib/systemd/system/目次下
- [root@localhost ~]# cp /usr/local/src/mysql-8.0.20/build/scripts/mysqld.service /usr/lib/systemd/system/
- [root@localhost ~]# chown 775 /usr/lib/systemd/system/mysqld.service
复制代码 当MySQL的启动文件(如mysqld.service)被放置在/usr/lib/systemd/system/目次下时,systemd能够自动识别并管理这个服务。可以利用systemctl命令来启动、停止、重启、查看状态、设置开机自启等MySQL服务。
启动Mysql服务
- [root@localhost ~]# systemctl start mysqld
- #查看3306端口是否已正常监听:
- [root@localhost mysql]# netstat -lntp |grep 3306
- tcp6 0 0 :::3306 :::* LISTEN 266278/mysqld
- tcp6 0 0 :::33060 :::* LISTEN 266278/mysqld
复制代码 利用默认暗码登录MySQL,并重置暗码及开放远程登录
- [root@localhost mysql]# mysql -uroot -p
- Enter password:
- Welcome to the MySQL monitor. Commands end with ; or \g.
- Your MySQL connection id is 8
- Server version: 8.0.20
- 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>
- # 修改初始密码
- mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypasswd';
- Query OK, 0 rows affected (0.00 sec)
- # 允许远程登录
- mysql> use mysql;
- Database changed
- mysql> update user set host ='%' where user='%';
- Query OK, 0 rows affected (0.00 sec)
- Rows matched: 0 Changed: 0 Warnings: 0
- # 刷新修改
- mysql> FLUSH PRIVILEGES;
- Query OK, 0 rows affected (0.00 sec)
- # 退出mysql
- mysql>exit
复制代码- # 设置mysql开机自启动
- [root@localhost mysql]# systemctl enable mysqld
- Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.
复制代码 MySQL源码编译安装已经配置完毕即可利用。
在本地Windows验证远程登录并写入数据
- USE mysql;
- CREATE TABLE xianggu (
- id INT PRIMARY KEY,
- NAME VARCHAR(100),
- age INT,
- gender VARCHAR(10)
- );
- INSERT INTO xianggu (id, NAME, age, gender) VALUES (1, '张三', 20, '男');
- INSERT INTO xianggu (id, NAME, age, gender) VALUES (2, '李四', 25, '女');
- INSERT INTO xianggu (id, NAME, age, gender) VALUES (3, '王五', 30, '男');
复制代码 在Linux主机查看数据变更
- mysql> use mysql;
- Database changed
- mysql> select * from xianggu;
- +----+--------+------+--------+
- | id | name | age | gender |
- +----+--------+------+--------+
- | 1 | 张三 | 20 | 男 |
- | 2 | 李四 | 25 | 女 |
- | 3 | 王五 | 30 | 男 |
- +----+--------+------+--------+
- 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
- [ 21%] Built target ut0frags-t
- [ 21%] Building CXX object router/src/harness/src/CMakeFiles/harness-archive.dir/config_option.cc.o
- In file included from /soft/mysql-8.0.38/router/src/harness/src/config_option.cc:26:0:
- /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
- #include <charconv> // from_chars
- ^~~~~~~~~~
- compilation terminated.
- 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
- make[1]: *** [CMakeFiles/Makefile2:45528: router/src/harness/src/CMakeFiles/harness-archive.dir/all] Error 2
- make[1]: *** Waiting for unfinished jobs....
- [ 21%] Building CXX object router/src/connection_pool/src/CMakeFiles/connection_pool.dir/connection_pool_component.cc.o
- [ 21%] Building CXX object libbinlogstandalone/src/CMakeFiles/binlogstandalone_static.dir/__/__/libbinlogevents/src/uuid.cpp.o
- [ 21%] Linking CXX static library ../lib/libbinlogstandalone.a
- [ 21%] Built target binlogstandalone_static
- [ 21%] Linking CXX shared library ../../../../library_output_directory/libmysqlrouter_connection_pool.so
- [ 21%] Built target connection_pool
- [ 21%] Linking CXX executable ../../../../runtime_output_directory/routertest_mysql_protocol_classic_protocol_message
- [ 21%] Built target routertest_mysql_protocol_classic_protocol_message
- make: *** [Makefile:166: all] Error 2
复制代码 编译器大概不支持 C++17大概没有精确配置以利用 C++17 尺度
办理方法:
- ## 在编译文件目录中执行
- cmake -S . -B build -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON
复制代码 清理之前的编译后重新编译
我出现这个报错时安装的是mysql8.0.38.尝试许多次重装体系。最终选择安装Mysql8.0.20版本
8. 参考链接
- CentOS安装MySQL8
- MySQL——源码安装教程
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |