Mysql官网
Linux-Mysql8.0.18下载
1. 查询出来已安装的mariadb
rpm -qa|grep mariadb

2.卸载mariadb,文件名为上述命令查询出来的文件
rpm -e --nodeps 文件名

3.将下载好的Mysql压缩包上传到服务器上

4.解压上传好的文件
tar Jxvf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz

5.将解压好的文件重命名并剪切到要安装的目录下
mv mysql-8.0.18-linux-glibc2.12-x86_64 mysql
mv mysql /usr/local

6.创建数据目录
mkdir /usr/local/mysql/data
7.创建并编辑my.cnf文件
vim /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
log-error=/usr/local/mysql/error.log
pid-file = /usr/local/mysql/mysql.pid
transaction_isolation = READ-COMMITTED
character-set-server = utf8
collation-server = utf8_general_ci
lower_case_table_names = 1
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
8.创建组
groupadd mysql
9.创建用户
useradd -g mysql mysql
10.修改目录权限
- 将 /usr/local/mysql给予mysql用户
chown -R mysql:mysql /usr/local/mysql
11.将/usr/local/mysql权限设置为755
chmod -R 755 /usr/local/mysql
12.初始化mysql
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql
13.尝试启动mysql
cd /usr/local/mysql
./support-files/mysql.server start

14.将mysql添加为服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
15.设置开机启动
cd /etc/init.d
chmod 755 /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 345 mysql on
service mysql restart

16.配置环境变量
echo 'export MYSQL_HOME=/usr/local/mysql' >> /etc/profile
echo 'export PATH=.:$MYSQL_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
17.使用默认密码登陆mysql
cd /usr/local/mysql/
head -4 error.log

mysql -uroot -p

18.在MySQL8中第一次登陆需要重新设置root密码
ALTER user 'root'@'localhost' IDENTIFIED BY 'root';

19.创建允许远程访问的用户
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
GRANT ALL ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;

20.开放访问端口或关闭防火墙
#查看已开放的端口(默认不开放任何端口)
firewall-cmd --list-ports
#开启3306端口(重启防火墙生效)
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#重启防火墙
firewall-cmd --reload
# 查看防火墙状态
systemctl status firewalld
#停止防火墙
systemctl stop firewalld
#永久关闭防火墙
systemctl disable firewalld