
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
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 目录,使得你可以通过系统服务管理工具(如 service 或 systemctl)管理 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