本文以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源码包
检查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*
没有软件包需要移除。
依赖关系解决。
无需任何处理。
完毕!
注释:若Linux主机可以访问公网,则只需要配置好公网repo源即可,若无法连接公网,则需要配置好本地repo源。不同类型用户可能需求不一样。这里默认大家使用本地iso搭建镜像yum源。 其余情况请参考文章(已经足够详细)yum源配置,这一篇就够了!(包括本地,网络,本地共享yum源)
当服务器无法访问公网或者所需要依赖无法在公网获取,我们可以通过
使用挂载本地iso镜像来获取我们需要的rpm包和依赖
此处以挂载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.
进入/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 install -y tree
本地yum源配置完成
译安装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 -y install lrzsz curlcmake 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
若提示没有某个安装包,可以在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
上述执行过程显示错误:没有任何匹配: gcc-devel
在https://www.rpmfind.net/linux/查找gcc-devel
对应版本安装包
若没有找到对应操作系统的rpm包。可以使用Centos/Ubuntu对应的包
下载后上传到本机,进行安装
sudo yum install -y gcc-devel
安装mysql8需要gcc5.3及以上版本,cmake3.5.1以上版本
如果升级gcc版本,可以查看本文:Linux环境下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,可以参考本篇文章:Linux环境下cmake编译安装
# 查看防火墙是状态
[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.
[root@localhost ~]# sed -i 's/SELINUX\=enforcing/SELINUX\=disabled/g' /etc/selinux/config
## 重启后生效
经过多次尝试,多次重装主机发现,目前Bclinux for openeuler不能安装mysql8的最新版本(centos7.x,centos8.x也不行)。 所以本次安装的mysql8的版本为
mysql8.0.20
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
安装完成
首先要创建mysql用户并赋予sudo权限
# 创建用户mysql并设置密码
[root@localhost bin]# useradd -m mysql
[root@localhost bin]# passwd mysql
更改用户 mysql 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
# 创建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 System
Administrator. 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)
初始化数据库
# 初始化数据库
[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)
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)
可能是没有安装成功某个依赖,手动安装即可
可能是没有安装成功某个依赖,手动安装即可
[ 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
清理之前的编译后重新编译
make clean
我出现这个报错时安装的是mysql8.0.38.尝试很多次重装系统。最终选择安装Mysql8.0.20版本
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。