1.前置条件:
把yum包更新到最新
[root@localhost ~]# yum update
查看系统中是否已安装 MySQL 服务
rpm -qa|grep mysql
如果有安装mysql,则需要先卸载之前安装的mysql:
yum -y remove mysql
然后再查看mysql是否都卸载完成,如果还有没卸载完成的,则单独卸载
例如:yum -y remove mysql-libs-5.1.73-8.el6_8.x86_64
新建一个下载目录并给权限
mkdir -p /opt/mysql
chmod 755 -R /opt/mysql
进入该目录
cd /opt/mysql
2、查看配置YUM源
在MySQL官网中下载YUM源rpm安装包:https://dev.mysql.com/downloads/repo/yum/
3 下载并安装MySQL官方的 Yum Repository
[root@localhost ~]# wget -i -c https://dev.mysql.com/get/mysql80-community-release-el9-5.noarch.rpm
使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子
如果有-bash: wget: command not found错误请执行以下命令
yum install wget -y
然后给权限
chmod 755 *.rpm
给权限后就可以直接yum安装了。
[root@localhost ~]# yum -y install mysql80-community-release-el9-5.noarch.rpm
之后就开始安装MySQL服务器。
[root@localhost ~]# yum -y install mysql-community-server
这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。
# 若报错:先执行:
yum module disable mysql
#再执行:
yum install mysql-community-server
4 MySQL数据库设置
初始化数据,主要是忽略大小写
/usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1
# vi修改配置 /etc/my.cnf
vi /etc/my.cnf
#添加配置[mysqld]区段下增加: ,忽略表名大小写
lower_case_table_names=1
启动MySQL
[root@localhost ~]# systemctl start mysqld.service
# systemctl enable mysqld.service
查看MySQL运行状态,运行状态如图:
[root@localhost ~]# systemctl status mysqld.service
检查正确后请重启系统
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
[root@localhost ~]# grep "password" /var/log/mysqld.log
[root@slaver4 package]# grep "password" /var/log/mysqld.log2 2019-07-09T14:27:27.564729Z 1 [Note] A temporary password is generated for root@localhost: 1j:nj40f35%N
查到后用如下命令进入数据库:
[root@localhost ~]# mysql -u root -p
输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Xsh@12345';
这里有个问题,新密码设置的时候如果设置的过于简单会报错:
原因是因为MySQL有密码设置的规范(length>8位,有大小写字母和特殊字符)
#加外网访问的用户
create user root@'%' identified WITH mysql_native_password by 'Xsh@12345';
grant all privileges on *.* to root@'%';
#刷新权限
flush privileges ;
可以运行以下sql语句检查
select host,user,user password,plugin,authentication_string from mysql.user;
SELECT VERSION();
SELECT NOW();
正确后退出
quit
打开 /etc 目录下的 my.cnf 文件(此文件是 MySQL 的主配置文件)(vi 请先自学下基本用法):
vi /etc/my.cnf
在 [mysqld] 前添加如下代码:
[client]
default-character-set=utf8
在 [mysqld] 后添加如下代码:
character-set-server=utf8
default-storage-engine=InnoDB
#开防火墙端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#防火墙重新加载
firewall-cmd --reload
#看开放的防火墙端口
firewall-cmd --zone=public --list-ports
最后重启系统。
但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:
[root@localhost ~]# yum -y remove mysql80-community-release-el9-5.noarch
此时才算真的完成了。