一、关闭防火墙
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
二、关闭selinux
vi /etc/selinux/config
# SELINUX=enforcing # 注释掉
# SELINUXTYPE=targeted #注释掉
SELINUX=disabled
执行
setenforce 0
三、卸载Mariadb、mysql历史残留
3.1 卸载mariadb数据库:
[root@localhost mysql]# rpm -
qa | grep mariadb
[root@localhost mysql]#rpm -
e
-
-
nodeps mariadb文件名
3.2 mysql软件删除
[root@localhost mysql]# rpm -qa | grep mysql
[root@localhost mysql]rpm -e --nodeps 【上面这些rpm软件】
3.3 mysql文件及路径删除
[root@localhost mysql]# find / -name mysql
[root@localhost mysql]#rm -rf 【上图的路径】
3.4 mysql8的修改配置文件
生成配置文件内容
老叶出品,方便可靠的MySQL my.cnf配置文件生成工具 (imysql.cn)
修改配置文件内容(可以把原文本内容全部删除,再粘贴)
vi /etc/my.cnf
##注意以后要用authentication_policy=caching_sha2_password
[mysqld]
user=mysql
# 设置3306端口
port=3306
# 请不要设置mysql的安装目录!!!!!
# !!如果是docker不要修改下面的路径
datadir=/var/lib/mysql
#socket设置!别忘了权限
socket=/var/lib/mysql.sock
# 允许最大连接数
max_connections=1000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=100
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
authentication_policy=mysql_native_password
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1
#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout 值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout = 1800
wait_timeout = 1800
#Metadata Lock最大时长(秒), 一般用于控制 alter操作的最大时长sine mysql5.6
#执行 DML操作时除了增加innodb事务锁外还增加Metadata Lock,其他alter(DDL)session将阻塞
lock_wait_timeout = 3600
#内部内存临时表的最大值。
#比如大数据量的group by ,order by时可能用到临时表,
#超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size = 64M
max_heap_table_size = 64M
[mysql]
#socket设置
socket=/var/lib/mysql.sock
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
#socket设置
socket=/var/lib/mysql.sock
default-character-set=utf8mb4
[mysqldump]
#socket设置
socket=/var/lib/mysql.sock
[mysqladmin]
#socket设置
socket=/var/lib/mysql.sock
mkdir -p /data/mysql
四、下载下述rpm文件
MySQL :: Download MySQL Community Server
mysql7 是6个文件
mysql-community-client-****.rpm --(依赖于libs)
mysql-community-common-****.rpm (MySQL配置)
mysql-community-devel-****.rpm(开发库)
mysql-community-libs-****.rpm (兼容库,依赖于common)
mysql-community-libs-compat-****.rpm
mysql-community-server-****.rpm --(依赖于client、common)
mysql8 是 7或8个文件(RHEL8是7个,centos7是8个)
放到/opt下面
cd /opt
## 请提前创建好 mkdir -p /data/mysql
yum install *.rpm
chown -R mysql:mysql /data/mysql
##socket文件权限
chown -R mysql:mysql /var/lib
初始化
mysqld --initialize --console
chown -R mysql:mysql /data/mysql##socket文件权限
chown -R mysql:mysql /var/lib
五、重启服务
1核CPU,等待5分钟后!!!
重启mysql服务
systemctl restart mysqld
六、第一次登录,并修改密码
mysql -u root -p 使用命令行连接mysql数据库
use mysql; 切换到mysql数据库
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
#或者update user set password=password("123456") where user="root";
flush privileges;
use mysql;
delete from user where user='';
提示: Query OK, 1 row affected (0.00 sec)
update user set host='%' where user='root' and host='localhost';
flush privileges;
exit;
七、防火墙开启后的配置(第一步我们已经关闭防火墙了)
开启防火墙
systemctl start firewalld
在防火墙中开启3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
查看开启的端口
firewall-cmd --zone=public --list-ports