在安装mysql8前,一些不可或缺的解决依赖性的包,由于版本的问题你的cmake…等包需要升级
在安装mysql的虚拟机中 添加阿里云的镜像库
#/etc/yum.repos.d/aliyun.repo
[base]
name=CentOS-os
baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/
gpgcheck=0
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=http://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/
gpgcheck=0
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=http://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=0
如果虚拟机不能上网,在真实主机(针对电脑本来就为linux系统,vm虚拟机同样适用)
iptables -t nat -I POSTROUTING -s 172.25.14.0/24 -j MASQUERADE
刷新yum源
cmake升级
tar zxf cmake-3.18.1.tar.gz
cd cmake-3.18.1
./configure
make
make install
#tar包需要编译
yum install cmake3-* -y
#cmake3-3.6.1-2.el7.x86_64.rpm cmake3-data-3.6.1-2.el7.noarch.rpm
#下载rpm不需要编译
gcc升级
#gcc升级:
#首先设置aliyun的centos源,再执行以下命令,上面有设置方法
yum install devtoolset-7-gcc*
cl enable devtoolset-7 bash
which gcc
gcc --version
安装jsoncpp
yum install jsoncpp-* -y
#jsoncpp-0.10.5-2.el7.x86_64.rpm jsoncpp-devel-0.10.5-2.el7.x86_64.rpm
#阿里开发者基本可以找到这些包
一些前置条件解决后,我们可以来编译mysql了。需要注意的是mysql需要:两个内核 内存>=3G 硬盘可用容量>=15G,不然在编译时容易不能编译
tar zxf mysql-boost-8.0.21.tar.gz
cd mysql-8.0.21/
mkdir build
cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DSYSCONFDIR=/etc \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_0900_ai_ci \
-DWITH_BOOST=/root/mysql-8.0.21/boost/boost_1_72_0/
make j2 #给两个内核 但是!对于普通计算机仍然需要40-60分钟的时间
make install
mysql安装后配置数据库
#拷贝启动脚本:
cd /usr/local/lnmp/mysql/support-files/
cp mysql.server /etc/init.d/mysqld
#新建用户:
useradd -M -d /usr/local/lnmp/mysql/ -s /sbin/nologin mysql
#创建数据目录:
mkdir -p /data/mysql
chown mysql.mysql /data/mysql
#初始化数据库:
mysqld --initialize --user=mysql
修改路径
[root@server1 ~]# cat /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/data/mysql/mysql.sock
#skip-grant-tables
#打开注释 进入数据库可不用密码
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
[root@server1 ~]# cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/usr/local/php/bin:/usr/local/mysql/bin
export PATH
source .bash_profile
初始化后修改密码
vim /etc/my.cnf
skip-grant-tables //添加参数
/etc/init.d/mysqld restart
mysql -p
mysql> update mysql.user set authentication_string='' where user='root';
vim /etc/my.cnf
skip-grant-tables //注释或删除参数
/etc/init.d/mysqld restart
mysql -p
mysql> alter user root@localhost identified by 'Westos+007';
mysql> flush privileges;
安装完成