CentOS7默认数据库是mariadb,而不是mysql。CentOS7的yum源中默认是没有mysql的。所以不能使用yum install直接安装。
下载mysql的repo源
cd /usr/local/src/
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm -msyql57
wgethttp://repo.mysql.com/mysql80-community-release-el7-2.noarch.rpm -mysql8
如果这里提示:wget: command not found,则需要先运行:
yum install wget
安装wget。
执行安装
rpm -ivh mysql57-community-release-el7-8.noarch.rpmyum -y install mysql-server
静静等待……安装完成后,密码为随机密码,需要重置密码。
启动mysql服务
执行命令:
service mysqld restart 或者 systemctl start mysqld
查看随机密码:
grep “password” /var/log/mysqld.log
进入mysql:
mysql -uroot -p+4)k+3vdbTFT
修改密码:
alter user ‘root’@’localhost’ identified by ‘wangwust’;
mysql 5.7.20 为了安全,要求密码必须包含 数字字母符号。
我们不改简单,直接设置一个:w7VrwpnRa2#
然后刷新一下权限:
flush privileges;
搞定!!!
开启远程访问
进入mysql,执行:
use mysql;
切换到mysql数据库。执行:
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘w7VrwpnRa2#’; -mysql57 w7VrwpnRa2#是给新增权限用户设置的密码,%代表所有主机,也可以具体到你的主机ip地址
update user set Host=’%’ where User=’root’; — mysql80(可能会出现caching-sha2-password问题,执行:ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘.0:Zr-bQvuD+’;)
flush privileges; 这句表示从mysql的grant表中重新记载权限数据,因为mysql把都放在cache中,所以做完更改后需要重新加载。
查看用户表:
select User,authentication_string,Host from user
在本机使用IP连接数据库:
可以连接。试试远程连接:
发现无法连接。猜测应该是firewall的问题。
设置firewall
查看防火墙状态:
systemctl status firewalld –查看firewall服务状态
firewall-cmd –state –查看firewall的状态
firewall-cmd –query-port=3306/tcp –查询3306端口是否开放
从图中可以看出3306端口没有开放。
开放3306端口:
firewall-cmd –add-port=3306/tcp
再次查看3306端口状态:
已经处于开放状态。再次在尝试远程连接:
连接成功!
说明
默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log/var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid
———————
参考:1、https://blog.csdn.net/z13615480737/article/details/78906598?utm_source=copy
2、https://blog.csdn.net/bbwangj/article/details/74502967