在CentOS中默认安装有MariaDB,是MySQL的一个分支,主要由开源社区维护。
CentOS 7及以上版本已经不再使用MySQL数据库,而是使用MariaDB数据库。
如果直接安装MySQL,会和MariaDB的文件冲突。
因此,需要先卸载自带的MariaDB,再安装MySQL。
rpm -qa | grep mariadb
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps
rpm -qa | grep libaio
yum install libaio
rpm -qa | grep net-tools
yum install net-tools
https://dev.mysql.com/downloads/mysql/
ll /opt
#也可以直接解压在/opt目录下,安装MySQL会默认安装在/usr/bin/mysql下 mkdir /usr/local/mysql cd /usr/local/mysql
tar -xvf /opt/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar -C /usr/local/mysql
rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -qa | grep mysql
mysqld --initialize; chown mysql:mysql /var/lib/mysql -R; systemctl start mysqld.service; systemctl enable mysqld;
cat /var/log/mysqld.log | grep password
mysql -uroot -p
#新密码:123456 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; #通过exit退出后重新登录 exit
#将localhost更换成%表示不限制ip,若限制只能某一ip访问可以将%换成具体的ip地址 #此处的用户名root和密码123456为新的用户名和密码并非当前登录的用户名和密码,可以随意替换 #此处需用新建的用户名和密码进行指定的IP地址进行登录 create user 'root'@'%' identified by '123456'; grant all privileges on *.* to 'root'@'%' with grant option; flush privileges;
MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。
ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; flush privileges;
#在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表示标准时区