# Linux系统安装 Mysql8.x
# CentOS 7.x
# 官网下载压缩包
官方地址:https://dev.mysql.com/downloads/mysql/

点击下载时,需要进行登陆,没账号需要先注册后登陆,登陆成功后跳转以下页面:

下载在自己桌面上传至LINUX或者得到链接直接在服务器wegt均可。(我使用的是网易开源镜像站下载)
#官网下载压缩包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19-1.el8.x86_64.rpm-bundle.tar
#网易开源镜像站
wget http://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-8.0.17-el7-x86_64.tar.gz
# 解压
tar -zxvf mysql-8.0.17-el7-x86_64.tar.gz -C /usr/local
# 修改文件夹名称
cd /usr/local
mv mysql-8.0.17-el7-x86_64.tar.gz mysql
# 添加默认配置文件
vi/etc/my.cnf
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
user=mysql
socket=/tmp/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
#免密登陆,用于后面修改root密码,修改密码成功后注视掉当行
skip-grant-tables
# 创建mysql组和用户
groupadd mysql
useradd -g mysql mysql
# 创建mysql数据目录
mkdir /usr/local/mysql/data
# 初始化mysql
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
# 初始化报错
bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
# 解决方法
yum install -y libaio
# 修改/tmp/mysql的目录权限
chown -R mysql:mysql /tmp/mysql
# 初始化成功
2020-04-18T14:10:10.273716Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.17) initializing of server in progress as process 42921
2020-04-18T14:10:13.117486Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: cQWu0raLVw&t
2020-04-18T14:10:13.989281Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.17) initializing of server has completed
# mysql开机自启
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#赋予可执行权限
chmod +x /etc/init.d/mysql
# 启动mysql服务器
# 启动
service mysql start;
# 查看启动状态
service mysql status;
# mysql 基本操作
# 连接mysql
/usr/local/mysql/bin/mysql -u root
# 修改mysql的默认初始化密码
alter user 'root'@'localhost' identified by '设置新的密码';
# 开启远程登录
update mysql.user set host='%' where user='root';
flush privileges;
# 查看mysql所用用户
select user,host from mysql.user;
# 防火墙问题
注意:修改过后便可以用外部工具连接了,这里有一点注意的是防火墙问题,按照对应的系统去开放3306端口,如若不开放回会出现10060的错误码(主要是防火墙问题)
# 开放3306端口(针对开启防火墙的情况)
permanent 表示永久开启
firewall-cmd --add-port=3306/tcp --permanent
针对个人开发直接关闭防火墙即可
# 关闭防火墙
#查看状态
systemctl status firewalld
service iptables status
#下次重启恢复防火墙
systemctl stop firewalld
service iptables stop
#永久关闭
systemctl disable firewalld