操作环境: 阿里云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 后面那串随机数字
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 [远程连接]