一、安装环境处理
1. MariaDB
在CentOS中默认安装有MariaDB,是MySQL的一个分支,主要由开源社区维护。
CentOS 7及以上版本已经不再使用MySQL数据库,而是使用MariaDB数据库。
如果直接安装MySQL,会和MariaDB的文件冲突。
因此,需要先卸载自带的MariaDB,再安装MySQL。
1)查看MariaDB是否安装
rpm -qa | grep mariadb
2)存在则卸载mariadb
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps
2. libaio
1) 检查安装依赖包libaio是否存在
rpm -qa | grep libaio
2)不存在执行下载安装
yum install libaio
3. net-tools
1) 检查安装依赖包net-tools是否存在
rpm -qa | grep net-tools
2)不存在执行下载安装
yum install net-tools
二、官网下载MySQL
1.官网下载
https://dev.mysql.com/downloads/mysql/
选择下载版本
三、安装MySQL
1. 通过工具上传安装包到/opt目录下
ll /opt
2. 创建解压目录
#也可以直接解压在/opt目录下,安装MySQL会默认安装在/usr/bin/mysql下
mkdir /usr/local/mysql
cd /usr/local/mysql
3. 解压安装包到mysql目录
tar -xvf /opt/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar -C /usr/local/mysql
4. 安装MySQL
1) 安装common
rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm --nodeps --force
2) 安装libs
rpm -ivh mysql-community-libs-8.0.33-1.el7.x86_64.rpm --nodeps --force
3) 安装client
rpm -ivh mysql-community-client-8.0.33-1.el7.x86_64.rpm --nodeps --force
4) 安装server
rpm -ivh mysql-community-server-8.0.33-1.el7.x86_64.rpm --nodeps --force
5) 安装完成
rpm -qa | grep mysql
四、初始化MySQL配置
1. 通过以下命令,完成对 mysql 数据库的初始化和相关配置
mysqld --initialize;
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;
2. 修改MySQL登录密码
1) 查看当前密码
cat /var/log/mysqld.log | grep password
2) 使用查获的初始密码登录MySQL数据库
mysql -uroot -p
3) 修改密码
#新密码:123456
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
#通过exit退出后重新登录
exit
4) 远程访问授权
#将localhost更换成%表示不限制ip,若限制只能某一ip访问可以将%换成具体的ip地址
#此处的用户名root和密码123456为新的用户名和密码并非当前登录的用户名和密码,可以随意替换
#此处需用新建的用户名和密码进行指定的IP地址进行登录
create user 'root'@'%' identified by '123456';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
5) 修改加密规则
MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。
ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
flush privileges;
6) 配置防火墙
#在linux命令窗口执行
#1、查看防火墙状态
firewall-cmd --state
#若未启动,则启动防火墙
systemctl start firewalld
#2、开放端口
# 开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#关闭3306端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent
# 配置立即生效
firewall-cmd --reload
#查看防火墙所有开放端口
firewall-cmd --zone=public --list-ports
注:项目代码配置jdbc驱动连接MySQL8数据库与MySQL5数据库存在差异
第一:mysql的驱动包需要升级到高版本,此处我升到了8.0.27版本
第二:配置的驱动名称不同
MySQL5用的是 driver = com.mysql.jdbc.Driver
MySQL8需要变更为 driver = com.mysql.cj.jdbc.Driver
第三:在访问mysql的url后加入时区设置
url = jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&serverTimezone=UTC
UTC表示标准时区