一、安装
提示:不要采用源码编译方式,根本编译不过去,各种bug,需要针对AIX系统添加各种patch才可以,因此最简单的方式就是直接使用已经编译好的rpm包,如果没有rpm直接放弃就可以了。
1.1. 下载软件依赖包
首先mysql必须要安装的几个包是
mysql-config-1.0-2.noarch(这个包很坑,就是一堆文件,但是不安装还不行,其他几个包依赖这个包,同时server包还和这个包冲突)
community-mysql-8.0.17-3.ppc
community-mysql-server-8.0.17-3.ppc
community-mysql-common-8.0.17-3.ppc
community-mysql-errmsg-8.0.17-3.ppc
下载地址:
http://www.bullfreeware.com/?searching=true&package=mysql&from=&to=&libraries=false&exact=false&version=5
需要注意的是,除了这几个包之外,mysql有一大堆依赖包都需要下载,这些依赖包大部分可以在mysql各个组件的下载页面中找到,但是有个别几个包需要我们额外进行安装,同样可以在上述网站搜索相应的安装包,目前我们已经安装的rpm包如下:
tcl-8.4.7-3.ppc
expect-5.42.1-3.ppc
libgcc-8-1.ppc
xz-libs-5.2.5-1.ppc
libstdc++-8-1.ppc
bash-5.0.17-2.ppc
info-6.7-4.ppc
libunistring-0.9.10-1.ppc
libffi-3.2.1-2.ppc
gettext-0.20.1-2.ppc
coreutils-8.32-1.ppc
readline-8.0-2.ppc
pcre-8.44-1.ppc
openssl-1.0.2s-1withsslv2.ppc
gdbm-1.18.1-5.ppc
mysql-config-1.0-2.noarch
community-mysql-8.0.17-3.ppc
community-mysql-server-8.0.17-3.ppc
AIX-rpm-7.2.4.0-1.ppc
tk-8.4.7-3.ppc
libgcc8-8.4.0-5.ppc
zlib-1.2.11-5.ppc
libstdc++8-8.4.0-5.ppc
libiconv-1.16-5.ppc
ncurses-6.2-2.ppc
libxml2-2.9.10-1.ppc
gmp-6.2.0-1.ppc
libtextstyle-0.20.1-2.ppc
glib2-2.48.1-2.ppc
lz4-1.9.1-1.ppc
bzip2-1.0.5-3.ppc
grep-3.0-1.ppc
gdbm-libs-1.18.1-5.ppc
perl-5.32.0-6.ppc
protobuf-3.11.2-1.ppc
community-mysql-common-8.0.17-3.ppc
community-mysql-errmsg-8.0.17-3.ppc
这里特别需要注意的是openssl的软件包,在mysql的安装依赖列表中默认是没有这个包的,因为在AIX上已经安装了对应libcrypto.a这个库,但是!!!mysql是使用的opensource openssl进行编译的,AIX自带的libcrypto.a这个库和mysql不匹配,因此mysql安装成功也无法启动,所有的mysql相关命令都会报出如下错误:
这个时候我们就需要手动安装opensource的openssl包,但是!!!如果我们在上面网站中找到最新版的opensoure openssl,会发现最新版openssl已经不再支持并且不推荐使用,推荐使用AIX LPP方式安装的openssl。
如果你使用AIX7.2的镜像安装了openssl,并不能解决上述错误,参考:
http://www.bullfreeware.com/newsPage
还是得使用opensoure的openssl,我们找到了这个版本
这个版本是可用的。
接下来我们就是装各种依赖包了,除了mysql列出的依赖,还需要安装gdbm、protobuf、perl、gdbm-libs等几个额外的依赖包,最后安装commity-mysql-server的时候会发现与mysql-config存在冲突,只能使用rpm -i --force强制安装。
所有都安装完成后,默认二进制安装路径在/opt/freeware/bin下
二、启动
AIX上启动mysql也非常费劲。
cp /open/freeware/bin/mysql* /usr/bin/
mkgroup mysql
useradd -g mysql mysql
mkdir /mysql/db
chown -R mysql:mysql /mysql
chown -R mysql:mysql /usr/bin/mysql*
修改配置文件,添加如下内容
[server]
basedir=/opt/freeware/mysql/
datadir=/mysql/db
mysqld --user mysql --datadir=/mysql/db --initialize --initialize-insecure
mysqld --defaults-file=/etc/my.cnf --user mysql --datadir=/mysql/db
这时候又开始报错了
在/目录下查找errmsg.sys文件,发现在/opt/freeware/share/community-mysql/english/目录下,在my.cnf中的[server]字段添加如下内容
lc-messages-dir=/opt/freeware/share/community-mysql/english/
再次启动,还是报错
感觉是内存的问题,将ulimit和内存相关的调大,再次启动,可以了
执行如下命令进行设置
/opt/freeware/mysql/mysql_secure_installation -S /opt/freeware/var/lib/mysql/mysql.sock
登录
mysql -S /opt/freeware/var/lib/mysql/mysql.sock -uroot -p
终于成功了。