系统环境
系统环境:OpenPOWER服务器+RHEL7.5 for ppc64le版本
配置yum源
由于是红帽商业系统,先给系统配置一个centos7u5的源,如下:
[base]name=CentOS7u5_Base
baseurl=http://vault.centos.org/altarch/7.5.1804/os/power9/
gpgcheck=0
enabled=1
[extra]name=CentOS7u5_extra
baseurl=http://vault.centos.org/altarch/7.5.1804/extras/power9/
gpgcheck=0
enabled=1
失败的经历
配置好系统源以后,我们需要配置mysql的yum源,这个在官方网站已经很贴心的给我们准备好了(此处开始为废话,可以跳过不适用于ppc64le版本!):
截图如下,我们下载RHEL7系列的:
用rpm命令安装下载好的软件包:
[root@localhost mysql]# rpm -ivh mysql80-community-release-el7-3.noarch.rpm
使用yum命令安装mysql
yum install mysql-community-server
然后。。。居然没有对应版本!!!所以以上都是废话,我们需要手动编译安装了。
依旧是失败的经历
首先下载源码包,看到有src.rpm的源码,我准备尝试编译出一套ppc64le的二进制rpm包,这样也可以方便其他人使用;下载8.0并安装(如下在rhel7系统上依旧为废话。。。):
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-8.0.18-1.el7.src.rpm
rpm -ivh mysql-community-8.0.18-1.el7.src.rpm
跳转到SPEC文件目录,先查看下是否支持powerpc架构,不支持那就不用后续了。。。
cd ~/rpmbuild/SPECS/
还好,我们看到支持:
开始准备编译,需要安装一些依赖:
如图,我下载的是最新的mysql8.0,所以很多依赖对于红帽系统需要update8的版本,例如cmake3还有devtoolset-8-gcc,这个就不太现实了。。。我们退而求其次,下载一个5.7版本的mysql源码尝试编译。
步入正轨
5.7版本yum安装所需的依赖如下:
yum install cmake2 gcc-c gcc-c++ bison "perl(Env)" "perl(JSON) " libaio-devel ncurses-devel numactl-devel openssl-devel zlib-devel cyrus-sasl-devel openldap-devel
这次安装依赖很顺利,我们开始用如下命令进行编译:
rpmbuild -ba mysql.spec
过程极其顺利,编译出来的软件包:
在安装编译好的软件之前,需要先卸载掉系统中的mariadb相关软件包,否则安装mysql时候会冲突:
yum remove mariadb*
开始安装mysql,由于使用的rpm命令,注意一下安装顺序:
到此为止,mysql在OpenPOWER服务器上安装完毕。
启动以及登录
首先查看系统下系统里有没有安装的服务(有时候有的软件需要自己手动创建服务):
systemctl status mysqld.service
看来不用手动创建服务了,我们启动它:
systemctl start mysqld.service
如果想要系统自动启动mysql,使用如下命令:
systemctl enable mysqld
systemctl daemon-reload
创建mysql时,它会默认创建一个临时密码,查询命令如下(密码为下图红框中的一串字符):
grep 'temporary password' /var/log/mysqld.log
登录,密码输入刚才查询得到的那一串字符:
mysql -uroot -p
修改密码,注意,密码规则是必须包含大、小写字母、数字和特殊符号,否则会报错,所以如下的yourPassword仅表示字面含义:
alter user 'root'@'localhost' identified by 'yourPassword';
创建远程登录用户:
create user 'mysqltest1'@'%' identified by 'yourPassword';
分配所有权限给新创建的远程用户:
grant all on *.* to 'mysqltest1'@'%';
远程登录命令:
mysql -h yourIP -P 3306 -u mysqltest1 -p
其他一些小操作
查看库中的表:
选择库并查看表:
查询表中内容: