编译安装MySQL8.0 gcc的编译安装

Posted wlphyl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译安装MySQL8.0 gcc的编译安装相关的知识,希望对你有一定的参考价值。

编译安装mysql8.0

操作环境: 阿里云linux 64 

MySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能!

注意:从 MySQL 5.7 升级到 MySQL 8.0 仅支持通过使用 in-place 方式进行升级,并且不支持从 MySQL 8.0 降级到 MySQL 5.7

(或从某个 MySQL 8.0 版本降级到任意一个更早的 MySQL 8.0 版本)。唯一受支持的替代方案是在升级之前对数据进行备份。

 

一.环境准备

yum install ncurses-devel -y

yum install libaio -y

yum install glibc-devel.i686 glibc-devel -y

yum install gcc gcc-c++ -y

另外,MySQL8.0需要用gcc的版本为 4.8以上,而centos 6.4通过yum只能安装到4.4.7,所以在安装mysql8.0之前需要手动安装更高版本的gcc,我这里以gcc-4.8.2为例:

1 wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.gz

2 tar xf gcc-4.8.2.tar.gz

3 cd  gcc-4.8.2

4 载编译需要的依赖包:

./contrib/download_prerequisites

5  ./configure --prefix=/usr/local/gcc-4.8.2/   --enable-bootstrap --enable-threads=posix --enable-languages=c,c++,objc,obj-c++

6 make -j4

7 make install

说明:make的时间会很长。

安装完后,还需要将原来的gcc环境用新版本的gcc替换掉,否则mysql在安装时还是用的原来的gcc,

依次执行:

mv /usr/bin/gcc /usr/bin/gcc447

mv /usr/bin/g++ /usr/bin/g++447

mv /usr/bin/c++ /usr/bin/c++447

mv /usr/bin/cc /usr/bin/cc447

ln -s /usr/local/gcc-4.8.2/bin/gcc /usr/bin/gcc

ln -s /usr/local/gcc-4.8.2/bin/g++ /usr/bin/g++

ln -s /usr/local/gcc-4.8.2/bin/c++ /usr/bin/c++

ln -s /usr/local/gcc-4.8.2/bin/gcc /usr/bin/cc

mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak

ln -s /usr/local/gcc-4.8.2/lib64/libstdc++.so.6.0.18 /usr/lib64/libstdc++.so.6

 

接着,安装boost库:

wget -c http://sourceforge.net/projects/boost/files/boost/1.60.0/boost_1_60_0.tar.bz2  --no-check-certificate

tar xf boost_1_60_0.tar.bz2\\?r\\=\\&ts\\=1479114685\\&use_mirror\\=ncu

cd boost_1_60_0

./bootstrap.sh

./b2 stage threading=multi link=shared

./b2 install threading=multi link=shared

二.安装mysql8.0

安装前请先备份数据 备份请自行查询, 参考:https://www.cnblogs.com/kissdodog/p/4174421.html

 

进入usr目录 新建mysql8文件夹

cd /usr

mkdir mysql8

下载文件:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

解压文件

tar -zxvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

2  移动压缩包到usr/local目录下,并重命名文件

mv /usr/mysql8/mysql-8.0.11-linux-glibc2.12-x86_64  /usr/local/mysql

3.在MySQL根目录下新建一个文件夹data,用于存放数据

切换到mysql目录

cd /usr/local/mysql

mkdir data


4.创建 mysql 用户组和 mysql 用户

groupadd mysql

useradd -g mysql mysql

5.改变 mysql 目录权限

chown -R mysql.mysql /usr/local/mysql/

或者

chown -R mysql .

chgrp -R mysql .

6.初始化数据库

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


这个命令和mysql5.7之前的命令不一样了,之前命令是:bin/mysql_install_db --user=mysql,但是之后的版本已经被mysqld --initialize替代 

7.mysql配置

在mysql/support-files目录下新建文件my-default.cnf

                                       touch my-default.cnf

复制配置文件到/etc/my.cnf

                                cp -a ./support-files/my-default.cnf /etc/my.cnf 

修改my.cnf文件

vi my.cnf


[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /var/lib/mysql/mysql.sock

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#skip-grant-tables  忘记密码可用

[client]  
socket = /var/lib/mysql/mysql.sock

#加入[client] 否则可能遇到error 2002错误

 

8 建立MySQL服务

加入开机自启项:
将mysql/ support-files/mysql.server 拷贝为/etc/init.d/mysql并设置运行权限,这样就可以使用service mysql命令启动/停止服务

切换到mysql的support-files目录下

cd support-files

cp mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql

注册启动服务:

chkconfig --add mysql

查看是否添加成功

chkconfig --list mysql
mysqld          0:off  1:off  2:on  3:on  4:on 5:on  6:off

开启mysql服务:

  serivce mysqld start  
 

9. 配置全局环境变量

编辑 / etc/profile 文件

# vi /etc/profile

在 profile 文件底部添加如下两行配置,保存后退出

PATH=/data/mysql/bin:/data/mysql/lib:$PATH

export PATH

设置环境变量立即生效

 source /etc/profile

10.启动MySQL服务

service mysqld start

初始密码路径,在下图err文件中 A temporary password 后面那串随机数字


11.登录MySQL

mysql -uroot -p

password  输入上方看到的密码

修改密码:

alter user 'root'@'localhost' identified by '123'; 

  123对应的换成你自己的密码即可了。

12设置可以远程登录

                             mysql>use mysql

                            mysql>update user set host='%' where user='root' limit 1;

                                刷新权限

                             mysql>flush privileges;

然后检查3306端口是否开放 【阿里云已经放开 不需要操作】

netstat -nupl|grep 3306

开放3306端口

firewall -cmd --permanent --add-prot=3306/tcp

重启防火墙

firewall -cmd --reload

 

参考:

https://blog.csdn.net/github_39533414/article/details/80144890

https://blog.csdn.net/qq_40550973/article/details/80721014

https://blog.csdn.net/u013631121/article/details/80875837【ERROR 2002 (HY000): Can’t connect to local MySQL server through socket】

https://www.cnblogs.com/gmblog/p/3826330.html [远程连接]

以上是关于编译安装MySQL8.0 gcc的编译安装的主要内容,如果未能解决你的问题,请参考以下文章

MySQL源码编译MySQL8.x+升级gcc+升级cmake(亲测完整版)

Centos6安装gcc4.8及以上版本

源码编译安装MySQL8.0.20

源码编译安装MySQL8.0.20

简述MySql8.0编译安装过程

编译安装MySQL8.0