华为鲲鹏服务器centos 安装mysql5.7.27

华为鲲鹏服务器centos 安装mysql5.7.27

来自网络

2020-09-11 11:12 阅读 1673 喜欢 1 华为鲲鹏

最近入手了华为鲲鹏服务器... 作为一个菜鸡前端,去部署服务器,亚历山大.. 即便是各种抄抄抄也无济于事.

按照以往的记录进行安装mysql怎么都不行,最后找了一个帖子,原模原样的照搬下来才可以的。

以下为华为鲲鹏arm centos7.6服务器安装mysql5.7.27的记录。

1.mysql下载准备

https://downloads.mysql.com/archives/community/ ,进入后点击下载。

选择源码安装找到对应的版本号

Mysql5.7.27版本有很多的变化,安装时需要安装BOOST库,同安装包一起下载即可。

2.创建安装时需要的目录

mkdir -p  /www/server/mysql/{data,logs,tmp,run}

3.安装所需依赖

yum -y install make gcc-c++ cmake bison-devel  ncurses-devel

查看是否存在mariadb数据库,存在就卸载

rpm -qa|grep mariadb
rpm --nodeps -e mariadb-libs-5.5.64-1.el7.aarch64

删除自带的mariadb数据库

4.升级gcc c++不然在华为鲲鹏云会报错(不是华为鲲鹏服务器不用做第4步操作)

# 查询gcc版本,删除旧版本
rpm -qa | grep gcc
rpm --nodeps -e gcc-c++-4.8.5-39.el7.aarch64 gcc-4.8.5-39.el7.aarch64
# 安装
yum install centos-release-scl
yum install devtoolset-7     ##devtoolset-7对应gcc7.x.x版本
scl enable devtoolset-7 bash   ##激活gcc
gcc --version                  ##查看版本

删除旧版本gcc 查看版本

5.下载高版本cmake

# 下载cmake
wget https://cmake.org/files/v3.6/cmake-3.6.2.tar.gz
# 解压文件
tar xvf cmake-3.6.2.tar.gz && cd cmake-3.6.2/ 
# 执行安装
./bootstrap
# 编译
gmake
gmake install  
# 查看版本
/usr/local/bin/cmake --version
# 卸载旧版本
yum remove cmake -y

安装cmake,查看版本

6.创建用户及授权目录

groupadd mysql
useradd -g mysql -s /sbin/nologin -M mysql
# 创建目录用于存放boots
mkdir -p /www/server/mysql-boost
# 授权目录
chown mysql:mysql -R /www/server/
chmod 777 -R /www/server/

创建用户/授权目录

7.解压Mysql及mysql-boots

tar -zxvf mysql-5.7.27.tar.gz
tar -zxvf mysql-boost-5.7.27.tar.gz
![解压](/static_1599790596003-3890.jpg)

解压后mysql-boots后会自动的存在mysql-5.7.22目录. boots下载:https://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

wget https://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
# 解压
tar -zxvf boost_1_59_0.tar.gz

移动到指定的目录,在第8步的-DWITH_BOOST= 需要指定该目录

mv boost_1_59_0  /www/server/mysql-boost/boost

8. 编译安装

进入mysql-5.7.27目录进行编译。

cmake . \
-DCMAKE_INSTALL_PREFIX=/www/server/mysql/ \
-DMYSQL_DATADIR=/www/server/mysql/data \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/www/server/mysql-boost/boost \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/www/server/mysql/run/mysql.sock \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EMBEDDED_SERVER=1

编译安装

make -j 96
# (-j 96 参数充分利用多核CPU优势,加快编译速度)
# 之前我们一直使用make但是make编译太慢

如果不是华为的鲲鹏云服务器没有报错执行完毕后执行 make install 即可 华为鲲鹏云编译出现报错.

解决该问题error: ‘prctl’ was not declared in this scope

# 此处目录修改为编译mysql的目录 
cp /usr/include/sys/prctl.h /mnt/soft/mysql-5.7.27/include/
vim sql/mysqld.cc 

增加一行

#include "prctl.h"

增加#include "prctl.h" 保存退出继续执行

make -j 96

没有报错后,并执行100%就执行

make install

9.初始化数据库并配置my.cnf

# 切换至安装目录 
cd  /www/server/mysql
# 初始化数据库     
bin/mysqld --initialize

初始化后的初始密码,记录下来,第一次进需要

# 配置my.cnf
vim /etc/my.cnf         
my.cnf 内容
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
user = mysql
# 设置mysql的安装目录
basedir=/www/server/mysql
#mysql数据文件所在位置
datadir=/www/server/mysql/data/
#临时目录 比如load data infile会用到
tmpdir=/www/server/mysql/tmp/
##设置socke文件所在目录
socket=/www/server/mysql/run/mysql.sock
#记录当前 mysqld 进程的 pid
pid-file=/www/server/mysql/run/mysql.pid
#错误日志文件
log_error=/www/server/mysql/logs/error.log
#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#授权表中使用主机名了,只能使用IP
skip-name-resolve
#skip-grant-tables
#max_allowed_packet=12800074000
#时区
default-time_zone = '+8:00'

10.配置环境变量及设置开机自启动

# 设置变量
echo 'export PATH=/www/server/mysql/bin:$PATH' >>/etc/profile  
# 让变量生效
source /etc/profile        
# 将启动文件拷贝至/etc/init.d/方便启动
cp /www/server/mysql/support-files/mysql.server /etc/init.d/mysqld
# 给mysql执行权限
chmod +x /etc/init.d/mysqld  
# 切换至bin目录
cd  /www/server/mysql/bin   
# 创建软连接方便使用mysql直接登陆
ln -s mysql /usr/sbin/mysql    
# 设置开机自启动
chkconfig mysqld on        
# 查看是3-5是否开启
chkconfig --list mysqld      

开机启动

11.启动数据库

/etc/init.d/mysqld start

启动失败,

那就来解决报错,找不到error.log并没权限。

# 切换至你安装mysql时定义的日志目录
cd  /www/server/mysql/logs   
# 创建日志
touch error.log               
chmod 777 -R /www/server/
# 重新在设置一下权限
chown mysql:mysql -R /www/server/    
# 再次启动数据库。
# 启动完成
/etc/init.d/mysqld start      

启动成功

12.进入数据库,修改密码

mysql -uroot -p
alter user 'root'@'localhost' identified by 'root';

OVER


这篇文章为转载https://www.cnblogs.com/sxshaolong/p/12988569.html的,记录的同时简单回顾一下。


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
一直在做K12教育方面的产品,不过大都是学校管理层面的,对于教学一直很少触及。当然,这类的产品已经存在不少了,在功能、设计方面我们都会借鉴一些进行改进,其中有一些基础数据,如果也是从头自己收集的话,我想,可能会死的吧...比如:各个学段内的教材和章节信息。
最近在做在线阅卷相关的功能,根据一些常见的场景进行一些功能和业务分割理解,便于后续实现对应的功能。
平时聊天或写文章的时候,一直使用QQ拼音,经常会在打字的时候蹦出表情来,昨天突然就想把这沙雕表情插入到我的文章里面.. 还可以稍显生动一些..
前段时间弄了下微信的dat图片的解码,后续有同学问数据库的解码怎么弄.. 当然,后边陆陆续续的看了下,加上住院乱七八糟的事情,一直没处理,最近几天处理了下,发现微信数据库的数据格式是真的麻烦...
Access denied for user 'root'@'localhost' (using password: YES) 碰到一个错误,不知道怎么动了权限导致外网,本地都登录不进去了。
关于自动签到,之前也有过,感觉写过好多次了,有可能也重复了,不过这次是通过puppeteer来实现的,相对于之前的phantomjs 或 casperjs 或 request 等最起码会更简单些,也不用安装这么多稀奇古怪的东西。
参与1+X证书制度试点的前四批职业技能等级证书标准(2021年更新版)
日常使用`sublime text3`的时候,每次一打开都会提示让下载最新版本,可给愁死了。那么如何取消自动更新的提示呢?