1.卸载原有MySQL

1.1.检查是否安装

rpm -qa | grep mysql

 1.2.如果已安装mysql,先删除

rpm -e --nodeps +上述检查出来的包名

1.3.再次检查是否安装

1.4.搜索存在哪些mysql文件夹

find / -name mysql

1.5.有mysql文件夹则删除 

rm -rf +对应的包名

1.6.再次检查mysql文件夹

2.下载MySQL安装包

官方网址:https://downloads.mysql.com/archives/community/

2.1.上传到服务器目录

2.2.解压

tar -xf mysql-8.4.0-linux-glibc2.17-x86_64.tar.xz

 

文件夹重命名为mysql,移动位置并重新命名

mv mysql-8.4.0-linux-glibc2.17-x86_64 /usr/local/mysq

2.3.创建mysql用户组和用户并修改权限

#创建一个新的用户组,命名为“mysql”

groupadd mysql

#创建一个新的用户,命名为“mysql”

useradd -r -g mysql mysql

因为我已经创建过了,所以会出现already exists

2.4.创建目录并赋予权限

#创建目录

mkdir -p  /data/mysql        

#赋予权限,将 /data/mysql 目录及其所有子目录和文件的所有权更改为用户 mysql 和组 mysql。这里解释一下命令的各个部分      
chown mysql:mysql -R /data/mysql  

2.5.配置my.cnf文件

找到/etc/my.cnf并打开my.cnf

配置my.cnf

具体配置如下

注意:如需设置MySQL以不区分大小写,需要在此步设置
lower_case_table_names=1,

这是因为在 Mysql8 版本时,lower_case_table_names 变量是一个系统变量,它只能在 MySQL 服务器初始化时设置,并且一旦服务器初始化完成,就不应该再更改这个设置。这是因为在 MySQL 的数据字典和文件系统层面,这个设置影响到了表名和目录名的大小写敏感性和转换规则。

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid

# 不区分大小写
lower_case_table_names=1
#character config
character_set_server=utf8mb4
explicit_defaults_for_timestamp=true
# datadir=/var/lib/mysql
# socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
         
[mysqld_safe]
# log-error=/var/log/mariadb/mariadb.log
# pid-file=/var/run/mariadb/mariadb.pid

2.6.初始化数据库

2.6.1.进入mysql的bin目录下

cd usr/local/mysql/bin/

 

2.6.2.初始化

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

2.6.3.查看初始密码

cat /data/mysql/mysql.err

2.6.4.将mysql服务添加到/etc/init.d/mysql中

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

目的是将 MySQL 服务脚本从 /usr/local/mysql/support-files 复制到 /etc/init.d 目录,使得你可以通过系统服务管理工具(如 servicesystemctl)管理 MySQL 服务。

2.6.5.启动

#启动
service mysql start
#查询
ps -ef|grep mysql

2.6.6.设置mysql环境变量

打开/etc/profile

再最后添加

export PATH=$PATH:/usr/local/mysql/bin

刷新配置:

source /etc/profile

检查环境,确认 MySQL 及其工具是否安装成功

whereis mysql
whereis mysqldump

3.配置MySQL

3.1.进入mysql

mysql -u root -p

此次填写的密码为2.6.3步骤当中查看的初始密码,填写密码时不会显示出来,填写完成点击enter就行

3.2.设置密码

by后为自己设置密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH 'caching_sha2_password' BY 'root';

MySQL 8.0 及以后的版本默认使用 caching_sha2_password 插件作为用户认证方式。

刷新

flush privileges;

3.3.配置远程连接

use mysql;

# 将 root 用户的 host 属性设置为 %,表示 root 用户可以从任何 IP 地址连接到 MySQL 服务器。
update user set host='%' where user='root';
flush privileges;

3.3.2.开放3306端口并且云服务器控制台开放3306端口

# 查看防火墙状态
firewall-cmd --state

# 开启防火墙               
systemctl start firewalld      

# 停止防火墙        
systemctl stop firewalld.service  

# 禁止防火墙开机启动   
systemctl disable firewalld.service    

# 重启防火墙 
systemctl restart firewalld.service    

# 开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 开放端口之后 需要重新启动防火墙
systemctl restart firewalld.service  

# 重新加载防火墙规则

firewall-cmd --reload

到这mysql 在虚拟机上也安装完成,大家可以自行连接Navicat建库建表 测试下

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐