清理原有的MySQL
查找出安装的mysql软件包和依赖包
rpm -pa | grep mysql
删除上面的程序
yum remove mysql-xxx-xxx-xxx
查找mysql配置文件
find / -name mysql
删除mysql配置文件
rm -rf XXX
删除原有的mariadb
查询是否已经安装
rpm -qa|grep mariadb
删除mariadb
rpm -e --nodeps mariadb-libs
MySQL安装前准备
官网下载MySQL的repo源
https://dev.mysql.com/downloads/repo/yum/
将文件上传到CentOS
安装 yum repo文件并更新 yum 缓存
rpm -ivh mysql80-community-release-el7-5.noarch.rpm
执行结果:会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
更新 yum 命令
yum clean all
yum makecache
安装MySQL
查看mysql yum仓库中mysql版本
yum repolist all | grep mysql
MySQL8默认是开启的
若未开启,需开启才能安装(下面示例是关闭8,开启5.7)
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
或者可以编辑 mysql repo文件,将相应版本下的enabled改成 1 即可
vi /etc/yum.repos.d/mysql-community.repo
开始安装
yum install mysql-community-server -y
mysql80-community-release-el7-5.noarch.rpm 版本可以正常安装,但7-6的会报错
需要加 --nogpgcheck 避免下面报错
GPG key retrieval failed: [Errno 14] curl#37 - “Couldn’t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022”
开启MySQL服务
开启命令
systemctl start mysqld.service
获取初始密码
MySQL在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中;
cat /var/log/mysqld.log | grep password
使用初始密码登录mysql
mysql -u root -p
修改初始密码,密码必须符合当前策略,若需修改策略,请参考 MySQL密码策略
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxxxxx';
防火墙放开3306端口
查看防火墙状态,若未开启,无法设置
systemctl status firewalld
启停防火墙
systemctl start firewalld
systemctl stop firewalld
开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙:
systemctl reload firewalld
查看3306是否已开启
firewall-cmd --query-port=3306/tcp
将mysql 服务加入开机启动项,并启动mysql进程
systemctl enable mysqld.service
systemctl start mysqld.service
开放java程序访问
本地连接远程Mysql,一直报 java.sql.SQLException:null,message from server:"Host ‘’ is not allowed to connect.
原因是:远程服务器不允许你的java程序访问它的数据库。所以,我们要对远程服务器进行设置,使它允许你进行连接。
打开mysql控制台,
mysql -u root -p
然后输入密码
use mysql;
show tables;
select host from user;
update user set host ='%' where user ='root';
重新启动mysql服务
systemctl restart mysqld.service
修改时区
进入命令行,查看当前时间
select now();
修改时区,加8小时
set global time_zone = '+08:00';
set time_zone = '+08:00';
show variables like "%time_zone%";
上述命令当时生效,但是当其他人登录时依旧没有修改,重启数据库,发现重启后修改的参数又回到未修改前
解决方案:修改配置文件
vim /etc/my.cnf
在[mysqld]区域中加上
default-time_zone = ‘+8:00’
重启 MySQL
systemctl restart mysqld
常用命令
登录mysql
mysql -u username -p
退出mysql
quit
启动mysql
systemctl start mysqld.service
结束
systemctl stop mysqld.service
重启
systemctl restart mysqld.service
开机自启
systemctl enable mysqld.service
查看mysql版本
select version();