银河麒麟V10安装Mysql-5.7版本数据库

2021-08-29   


银河麒麟V10安装Mysql-5.7版本数据库

此次实验介绍:接上一篇博客,因为之前使用devstack工具自动部署openstack的时候,安装的是系统自带的mariadb数据库,但此次项目期望的最终目的是想将openstack部署成集群服务。结合这一原因,便慢慢拆分出一些服务来部署集群和高可用。先将mariadb换成客户这边要求使用的是mysql-5.7版本的数据库,后面再来部署主从同步。由于银河麒麟V10是ARM架构的服务器,找了很多包都无法使用,找的源码包编译安装也是出现很多问题,后面就直接在网上找的arrch的二进制包mysql-5.7.27-aarch64.tar.gz,安装步骤如下:

1、卸载安装的mariadb软件和删除mysql用户

#备份mariadb数据库里的数据
mysqldump -uroot -p'qwer1234' -B cinder glance keystone neutron nova_api nova_cell0 nova_cell1 placement > openstack.sql
#停止mysqld服务
systemctl stop mysqld
#卸载mariadb数据库
yum -y remove mariadb mariadb-server
#删除mysql用户
userdel -r mysql
#删除mariadb残留下来的配置文件
rm -f /etc/my.cnf
rm -rf /etc/my.cnf.d
rm -rf /etc/my.cnf.rpmsave

2、安装mysql数据库并设置为systemd管理

#安装mysqld的依赖库
yum install -y libaio*
#下载并解压ARM架构的mysqld二进制安装包
wget https://obs.cn-north-4.myhuaweicloud.com/obs-mirror-ftp4/database/mysql-5.7.27-aarch64.tar.gz
tar -xf mysql-5.7.27-aarch64.tar.gz
#重新创建mysql用户并设置不允许登录系统
useradd -s /sbin/nologin -M mysql
#移动目录到/usr/local/mysql下
mv mysql-5.7.27-aarch64 /usr/local/mysql
#创建mysqld的日志目录
mkdir -p /usr/local/mysql/logs
#赋予mysql的工作目录的属主与属组权限
chown -R mysql:mysql /usr/local/mysql
#拷贝mysqld的主配置文件并修改配置内容
cp -p /usr/local/mysql/my.cnf /etc/my.cnf
sed -i 's/\/dev\/shm/\/usr\/local\/mysql/g' /usr/local/mysql/my.cnf
#复制mysqld的依赖库
cp -af /usr/local/mysql/extra/lib* /usr/lib64/
#将以前的共享库备份
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.old
#将mysqld依赖的共享库做好软链接,以免后面的初始化报错
ln -s /usr/lib64/libstdc++.so.6.0.24 /usr/lib64/libstdc++.so.6
#使用系统systemd管理mysqld服务
cp -af /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
systemctl daemon-reload
#设置mysqld的全局环境变量,在/etc/profile文件后面追加两行内容
vim /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
#使环境变量生效
source /etc/profile
#无密码初始化mysqld服务
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#启动mysqld服务并设置为开机自启
systemctl start mysqld
systemctl enable mysqld
#登录mysql数据库设置密码,初始密码为空可以直接登录,并创建对应的库
mysql
mysql>set password for root@localhost = password('qwer1234');
mysql>create database cinder;
mysql>create database glance;
mysql>create database keystone;
mysql>create database neutron;
mysql>create database nova_api;
mysql>create database nova_cell0;
mysql>create database nova_cell1;
mysql>create database placement;
mysql>exit;

3、导入数据重启devstack的所有服务

#导入之前mariadb的数据
mysql -uroot -p'qwer1234' < openstack.sql
#重启devstack的所有服务
systemctl restart devstack@*

登录验证能否连接上openstack的web面板http:///dashboard/
能登上说明已经连接上数据库了

Q.E.D.