Centos7 安装 MySQL8.0
1、切换阿里云的源,备份原先自己的repo
cd /etc/yum.repos.d/ mv .*repo /repobak wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum repolist yum clean all yum update ==特别重要== 就是update之后,会重新生成以下的repo
2、epel-release 扩展源,主要是解决我们cmake3
yum install epel-release 不成功的话
安装的时候,有的发现安装不了,那么就采用下面的方式
2.1可以自己新建这么一个文件
vim /etc/yum.repos.d/epel.repo
【epel.repo内容】
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
2.2切换到这个目录下
cd /etc/pki/rpm-gpg/
2.3 执行下面的操作
wget https://archive.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
这样我们的epel-release源就下载好了
2.4、需要对之前的依赖清除、更新
yum repolist yum clean all yum update
2.5、安装cmake3
yum install -y cmake3 #将新版本cmake3软链接到cmake; ln -s /usr/bin/cmake3 /usr/bin/cmake
3、centos-release-scl 解决gcc c++
yum install -y centos-release-scl 不成功
3.1 配置源
vim /etc/yum.repos.d/CentOS-SCLo-scl.repo vim /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
【centos-sclo-sclo内容】
[centos-sclo-sclo] name=CentOS-7 - SCLo sclo baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/ gpgcheck=0 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
【CentOS-SCLo-scl-rh.repo内容】
[centos-sclo-rh] name=CentOS-7 - SCLo rh baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/ gpgcheck=0 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
3.2 清除、更新
yum repolist yum clean all yum update
3.3 yum 安装gcc c++等
#安装GCC、openssl、zlib yum -y install ncurses-devel make perl gcc autoconf automake zlib libxml2 libxml2-devel libgcrypt libtool bison devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-10-binutils openssl openssl-devel #启用新版Gcc; scl enable devtoolset-11 bash
4、下载MySQL8.0的安装包
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-8.0.30.tar.gz
5、创建目录 /data/install/ 和 /data/soft/
#存放我们下载的tar包 mkdir -p /data/install/ #存放我们的软件目录,所有的软件都放在此处,会比较好找 mkdir -p /data/soft/
6、解压tar,并进入这个目录下
#-C指定解压的目录 tar -zxvf mysql-boost-8.0.30.tar.gz -C /data/soft/ cd /data/soft/ ls #这时候会有mysql的解压包 cd mysql-8.0.30/
7、在上述的路径下/data/soft/mysql-8.0.30/进行预编译
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DMYSQL_DATADIR=/data/mysql/ \ -DSYSCONFDIR=/etc \ -DMYSQL_USER=mysql \ -DMYSQL_TCP_PORT=3306 \ -DWITH_XTRADB_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_EXTRA_CHARSETS=1 \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DEXTRA_CHARSETS=all \ -DWITH_BIG_TABLES=1 \ -DWITH_DEBUG=0 \ -DWITH_BOOST=./boost/ \ -DFORCE_INSOURCE_BUILD=1
8、开启8个线程进行编译
make -j8
9、安装
make -j8 install
10、创建用户组和用户
groupadd mysql useraddd -r -g mysql mysql
11、初始化数据库
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/
12、设置MYSQL为系统服务
ln -s /usr/local/mysql/bin/* /usr/bin/ \cp support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld /etc/init.d/mysqld start
报错信息如下:
/etc/init.d/mysqld startStarting MySQL.2024-07-02T01:57:16.868563Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'. ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).
此时,需要看一下MySQL的文件 /etc/my.cnf ,需要把原先的MySQL配置文件备份 成为另外的一个文件,让MySQL走我们源码编译之后的配置文件 ,也就是 support-files/mysqld