centos7源码编译安装mysql8.0

需要的资源

  • CPU最少2核以上
  • 内存最少2G以上
  • swap分区2G以上

一、安装前准备

1、安装各种依赖包

yum  -y install wget  ncurses  ncurses-devel  libaio-devel openssl openssl-devel

2、8.0版本的mysql编译需要cmake版本3.5以上,yum安装的版本是2.9,所以需要手动编译安装cmake3.9的版本

wget https://pan.cnbugs.com/cmake/cmake-3.9.1.tar.gz
tar xf cmake-3.9.1.tar.gz 
cd cmake-3.9.1/
./configure && make && make install

3、8.0版本的mysql需要gcc版本为5.3以上,yum安装为4.8.5

安装gcc依赖包,否则会报错

yum install  gmp  gmp-devel  mpfr  mpfr-devel git libmpc  libmpc-devel glibc-headers -y
wget http://mirror.koddos.net/gcc/releases/gcc-6.4.0/gcc-6.4.0.tar.gz
tar xf gcc-6.4.0.tar.xz
cd gcc-6.4.0/
mkdir tmp
cd tmp
../configure -enable-language=c,c++,go --disable-multilib 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
make -j12 && make install

这个编译会非常非常久,就慢慢等吧,如果有双核CPU可以使用make -j2,4核CPU可以使用make -j4可以大大提高编译速度。

查看版本

升级zlib

二、下载安装mysql8.0

1、下载带有boost的安装包

cd /opt/
wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-boost-8.0.27.tar.gz

2、解压mysql包并编译安装

[root@mysql_8 opt]# tar xf mysql-boost-8.0.27.tar.gz
[root@mysql_8 opt]# cd mysql-8.0.27/
cmake . -DBUILD_CONFIG=mysql_release \
-DINSTALL_LAYOUT=STANDALONE \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DWITH_INNODB_MEMCACHED=ON \
-DWITH_ZLIB=system \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DINSTALL_PLUGINDIR="/usr/local/mysql/lib/plugin" \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EDITLINE=bundled \
-DCOMPILATION_COMMENT="MySQL Server (GPL)" \
-DWITH_DEBUG=OFF \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SSL=system \
-DWITH_BOOST=./boost

不报错则预编译成功

编译

make -j2 

无报错信息输出

安装

make install

无报错信息表示安装完成

三、配置

1、 新建数据库文件夹及日志文件夹,并更改用户为mysql

[root@mysql_8 mysql-8.0.20]# useradd -s /sbin/nologin mysql
[root@mysql_8 mysql-8.0.20]# mkdir -p /data/mysql             
[root@mysql_8 mysql-8.0.20]# chown -R mysql:mysql /data/mysql/
[root@mysql_8 mysql-8.0.20]# mkdir -p /var/log/mysql
[root@mysql_8 mysql-8.0.20]# chown -R mysql:mysql /var/log/mysql/
[root@mysql_8 mysql-8.0.20]# mkdir -p /var/run/mysql
[root@mysql_8 mysql-8.0.20]# chown -R mysql:mysql /var/run/mysql

2、修改配置文件my.cnf

[root@mysql_8 mysql-8.0.20]# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysql/mysql.log
pid-file=/var/run/mysql/mysql.pid

!includedir /etc/my.cnf.d

3、初始化mysql数据库

/usr/local/mysql/bin/mysqld --initialize   --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/

查看/data/mysql数据文件

初始密码在最后标红

4、复制服务文件到/etc/init.d下面

[root@mysql_8 mysql]# cp /opt/mysql-8.0.20/support-files/mysql.server /etc/init.d/
[root@mysql_8 mysql]# chmod a+x /etc/init.d/mysql.server
[root@mysql_8 mysql]# /etc/init.d/mysql.server start

5、查看服务

6、登陆数据库修改初始root密码

[root@mysql_8 mysql]# echo "export PATH=/usr/local/mysql/bin:$PATH:/usr/local/bin" >/etc/profile.d/mysql.sh
[root@mysql_8 mysql]# source /etc/profile.d/mysql.sh 
[root@mysql_8 mysql]# mysql -u root -pWtiTtp44

修改密码


mysql> alter user 'root'@'localhost' identified with mysql_native_password BY '新密码';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

后记:

总之装了大半天,遇到了一大堆各种问题。解决办法可以在网站中查找。不懂的可以加群讨论。

发表评论

后才能评论