暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在openEuler中安装MySQL

心有阳光 2023-03-18
2484

在openEuler中安装MySQL

环境

远程工具:MobaXterm
操作系统:openEuler
MySQL:5.7.27

# 查看系统内核信息 [root@DC3-27-010 ~]# uname -a Linux DC3-27-010 4.19.90-2003.4.0.0036.oe1.aarch64 #1 SMP Mon Mar 23 19:06:43 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux [root@DC3-27-010 ~]# cat /proc/version Linux version 4.19.90-2003.4.0.0036.oe1.aarch64 (abuild@obs-worker-003) (gcc version 7.3.0 (GCC)) #1 SMP Mon Mar 23 19:06:43 UTC 2020 # 查看系统版本信息 [root@DC3-27-010 ~]# cat /etc/os-release NAME="openEuler" VERSION="20.03 (LTS)" ID="openEuler" VERSION_ID="20.03" PRETTY_NAME="openEuler 20.03 (LTS)" ANSI_COLOR="0;31"

hw000002.png

配置编译环境

关闭防火墙

# 停止防火墙 systemctl stop firewalld.service # 关闭防火墙 systemctl disable firewalld.service # 执行disable命令关闭防火墙的同时,也取消了开机自启动。 # 查看防火墙 systemctl status firewalld.service

hw000003.png

关闭SELinux

# SElinux对服务的影响:SElinux是最全面的安全系统,若不关闭会对文件和服务有一定的限制 # 设置SELinux成为permissive模式,临时关闭SElinux。 setenforce 0 # 查看SELinux状态,确认为permissive模式。 getenforce

hw000004.png

创建用户组和用户

# 服务器环境下,为了系统安全,通常会为进程分配单独的用户,以实现权限隔离。 # 创建的组和用户是操作系统层面的,不是数据库层面的。 # 创建mysql用户组。 groupadd mysql # 创建mysql用户。 useradd -g mysql mysql # 设置mysql用户密码。 passwd mysql # 重复输入密码(根据实际需求设置密码)。

hw000005.png

搭建数据盘

# 使用mkfs进行磁盘管理 # 查看磁盘。 ls /dev/nvme* # 格式化磁盘。 mkfs.xfs -f /dev/nvme0n1 du -sh /dev/nvme0n1 # 创建数据目录。 mkdir /data # 挂载磁盘到数据目录。 mount /dev/nvme0n1 /data/ df -h

hw000006.png

创建数据目录

# 创建数据目录“/data”和进程所需的相关目录。 mkdir -p /data/mysql cd /data/mysql mkdir data tmp run log relaylog # 修改数据目录“/data”的用户组和用户权限为mysql:mysql。 chown -R mysql:mysql /data ll /

hw000007.png

配置Yum源

配置外网Yum源

# 1.确认可以访问外网。 curl www.baidu.com # 2.查看Yum源,如果存在外网Yum源(*.repo文件),则直接执行步骤6。 ls /etc/yum.repos.d/ # 3.备份Yum源。 cd /etc/yum.repos.d mkdir bak mv *.repo bak # 4.配置外网Yum源。 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-AltArch-7.repo # 5.查看Yum源。 ls /etc/yum.repos.d/ cat /etc/yum.repos.d/CentOS-Base.repo # 6.使Yum源生效。 yum clean all yum makecache yum list

hw000008.png

hw000009.png

hw000060.png

安装依赖包

# 安装依赖包。 yum -y install bison ncurses ncurses-devel libaio-devel openssl openssl-devel gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel wget tar gcc gcc-c++ git rpcgen cmake libtirpc-devel openldap-devel openldap net-tools

hw000010.png

hw000011.png

安装依赖包报错时

yum -y install bison ncurses ncurses-devel libaio-devel openssl openssl-devel gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel wget tar gcc gcc-c++ git rpcgen cmake libtirpc-devel openldap-devel openldap net-tools --nogpgcheck

hw000012.png

hw000013.png

升级CMake

# 若系统自带的CMake软件不能满足当前数据库版本的编译要求,则需要升级CMake版本至3.4.3或者以上,本文以升级到3.5.2版本为例。 # 下载CMake 3.5.2上传至服务器“/home”目录。 # CMake 3.5.2下载地址:https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz # 若服务器可以访问外网,则可以直接使用wget命令下载。 cd /home wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz --no-check-certificate

hw000014.png

# 解压。 tar -zxvf cmake-3.5.2.tar.gz

hw000015.png

# 进入解压后目录。 cd cmake-3.5.2 # 升级CMake。 ./bootstrap

hw000016.png

hw000017.png

make -j 96 # -j 96参数充分利用多核CPU优势,加快编译速度,参数-j后数字为CPU核数,可用“cat /proc/cpuinfo | grep processor | wc -l”进行查看,此数值应小于等于CPU核数。

hw000018.png

hw000019.png

make install

hw000020.png

hw000021.png

# 确认CMake的版本是否为3.5.2。 hash -r /usr/local/bin/cmake --version

hw000022.png

升级GCC

openEuler 20.03系统自带的GCC版本为7.3.0,CentOS 8.1系统自带的GCC版本为8.3.1,不需要升级。

# 下载GCC 7.3.0。 cd /home wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz --no-check-certificate # 解压。 tar -xvf gcc-7.3.0.tar.gz # 编译安装GCC。 cd /home/gcc-7.3.0 # 配置。 ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-bootstrap # --prefix=PATH:指定GCC软件安装目录。默认路径“/usr” # --mandir=PATH:指定GCC软件文档目录。默认路径“/usr/share/man” # --infodir=PATH:指定GCC软件日志信息目录。默认路径“/usr/share/info” # --enable-bootstrap:指定启用bootstrap方式安装。 # 如果配置报错"configure: error: no acceptable C compiler found in $PATH" # 则执行以下命令。 yum -y reinstall gcc gcc-c++ # 编译GCC源码。 make -j 96 # 安装。 make -j 96 install # 确认GCC的版本是否为7.3.0。 gcc -v

hw000023.png

编译和安装

# 下载MySQL源码包 # 下载地址:https://downloads.mysql.com/archives/community/ # 若服务器可以访问网络,则通过wget命令直接下载MySQL源码。 cd /home wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.27.tar.gz --no-check-certificate

hw000024.png

# 将mysql-boost-5.7.27.tar.gz上传至服务器“/home”目录下,并解压。 cd /home tar -zxvf mysql-boost-5.7.27.tar.gz

hw000025.png

hw000026.png

# 进入“/home/mysql-5.7.27”源码文件夹,并建立一个编译目录。 cd /home/mysql-5.7.27 mkdir build

hw000027.png

# 进入编译目录,配置MySQL。 cd build cmake .. -DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql/data -DWITH_BOOST=/home/mysql-5.7.27/boost/boost_1_59_0 # DBUILD_CONFIG:设置为mysql_release的含义是指CMake编译参数采用Mysql官方发布release版本时的编译参数。 # DCMAKE_INSTALL_PREFIX:用于指定软件的安装路径,本文安装路径为:/usr/local/mysql。文档中的安装路径只是参考,根据客户实际情况进行配置。 # DMYSQL_DATADIR:创建数据库时,数据文件存放的路径。本次安装路径为:/data/mysql/data。 # DWITH_BOOST:解压MySQL源码包后,解压文件中boost_1_59_0文件夹所在路径。例如,本文解压在“/home”目录下,则路径为:/home/mysql-5.7.27/boost/boost_1_59_0。

hw000028.png

hw000029.png

# 报错 # Package 'libtirpc', required by 'virtual:world', not found yum install -y libtirpc-devel # CMake Error at cmake/rpc.cmake:69 (MESSAGE): # Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc # 删除build目录,重新创建 cd .. rm -rf build mkdir build cd build # 找到rpc.h文件,复制到/usr/include目录下 find / -name rpc.h cp -a /home/mysql-5.7.27/rapid/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/windeps/sunrpc/rpc/ /usr/include/ # 再次执行 cmake .. -DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql/data -DWITH_BOOST=/home/mysql-5.7.27/boost/boost_1_59_0

hw000030.png

hw000031.png

# 编译MySQL。 make -j 96

hw000032.png

hw000033.png

# 安装MySQL。 make -j 96 install

hw000034.png

hw000035.png

# 查看安装目录。 ls /usr/local/mysql/ # 查看数据库版本。 /usr/local/mysql/bin/mysql --version

hw000036.png

运行

修改配置文件

# 编辑my.cnf文件。 rm -f /etc/my.cnf echo -e "[mysqld_safe]\nlog-error=/data/mysql/log/mysql.log\npid-file=/data/mysql/run/mysqld.pid\n[mysqldump]\nquick\n[mysql]\nno-auto-rehash\n[client]\ndefault-character-set=utf8\n[mysqld]\nbasedir=/usr/local/mysql\nsocket=/data/mysql/run/mysql.sock\ntmpdir=/data/mysql/tmp\ndatadir=/data/mysql/data\ndefault_authentication_plugin=mysql_native_password\nport=3306\nuser=mysql\nlower_case_table_names=1\n" > /etc/my.cnf # 其中文件路径(包括软件安装路径basedir、数据路径datadir等)根据实际情况修改。user=mysql是指操作系统层的用户,即创建用户组和用户中创建的用户。

hw000037.png

# 确保my.cnf配置文件修改正确。 cat /etc/my.cnf [root@DC3-27-010 build]# cat /etc/my.cnf [mysqld_safe] log-error=/data/mysql/log/mysql.log pid-file=/data/mysql/run/mysqld.pid [mysqldump] quick [mysql] no-auto-rehash [client] default-character-set=utf8 [mysqld] basedir=/usr/local/mysql socket=/data/mysql/run/mysql.sock tmpdir=/data/mysql/tmp datadir=/data/mysql/data default_authentication_plugin=mysql_native_password port=3306 user=mysql

hw000038.png

# 修改配置文件“/etc/my.cnf”的用户组和用户权限为mysql:mysql。 chown mysql:mysql /etc/my.cnf ll /etc/my.cnf

hw000039.png

MySQL加入service服务

chmod 777 /usr/local/mysql/support-files/mysql.server cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql chkconfig mysql on # 修改“/etc/init.d/mysql”的用户组和用户权限为mysql:mysql chown -R mysql:mysql /etc/init.d/mysql ll /etc/init.d/mysql

hw000040.png

配置环境变量

# 安装完成后,将MySQL二进制文件的路径添加到环境变量中。 echo export PATH=$PATH:/usr/local/mysql/bin >> /etc/profile # 其中PATH中的“/usr/local/mysql/bin”路径,为MySQL软件安装目录下的bin文件的绝对路径,请根据实际情况修改。 # 使环境变量配置生效。 source /etc/profile # 查看环境变量。 env

hw000041.png

切换到mysql用户

su - mysql whoami

hw000042.png

初始化数据库

mysqld --defaults-file=/etc/my.cnf --initialize # 或者 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize # 倒数第1行中有初始密码,请注意保存,登录mysql时会用到。

hw000043.png

# 初始化完成后,查看数据目录下数据文件“/data/mysql/data”的用户组和用户权限为mysql:mysql(因为前面/etc/my.cnf文件中配置的操作系统用户是user=mysql)。 ll /data/mysql/data

hw000044.png

启动数据库

启动数据库进程

service mysql start # 或者 mysqld --defaults-file=/etc/my.cnf & # 或者 /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &

hw000045.png

查看数据库进程

ps -ef | grep mysql

hw000046.png

查看数据库监测端口

netstat -anpt netstat -anpt | grep mysql netstat -anpt | grep 3306 # 如果netstat命令执行失败,则需要安装依赖包。 yum -y install net-tools

hw000047.png

登录数据库

mysql -uroot -p -S /data/mysql/run/mysql.sock # 或者 /usr/local/mysql/bin/mysql -uroot -p -S /data/mysql/run/mysql.sock

hw000048.png

配置数据库帐号密码

# 文档中的用户和密码只是参考,根据客户实际情况进行配置 # 登录数据库以后,修改通过root用户登录数据库的密码 alter user 'root'@'localhost' identified by "root"; # 创建全域root用户(允许root从其他服务器访问) create user 'root'@'%' identified by 'root'; # 进行授权 grant all privileges on *.* to 'root'@'%'; flush privileges;

hw000049.png

退出数据库

# 执行\q或者exit退出数据库 exit

hw000050.png

用修改后的密码重新登录数据库

mysql -uroot -p -S /data/mysql/run/mysql.sock 或者 /usr/local/mysql/bin/mysql -uroot -p -S /data/mysql/run/mysql.sock

hw000051.png

关闭数据库

service mysql stop # 或者 mysqladmin -uroot -proot shutdown -S /data/mysql/run/mysql.sock # 或者 /usr/local/mysql/bin/mysqladmin -uroot -proot shutdown -S /data/mysql/run/mysql.sock

测试远程连接

使用Navicat工具测试远程连接

hw000052.png

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论