安装前的准备
首先要准备好安装环境:
① 准备一台有IP地址的虚拟机
② 使用winscp把数据库安装包传到虚拟机中
安装包可自行去官网下载 mysql官网
③ 进行mysql的安装
安装
1、安装依赖
mysql适用c语言写的,需要c语言环境,需要使用yum命令,此时虚拟机需要能够连接上外网
执行指令
yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel net-tools
2、检查mariadb
因为有些linux系统自带mariadb数据库会与mysql数据库起冲突,所以我们需要查看系统中是否有mariadb数据库,若存在,则需要删除它,执行第三步;若不存在,则直接跳到第四步即可。
rpm -qa 查看系统中已经安装的软件列表
ps -ef 查看系统中正在运行的软件列表
rpm -qa | grep mariadb
此处我需要执行第三步。
3、删除mariadb
yum -y remove mariadb-libs
4、解压并安装
tar -xf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar
.rpm 都是tar包解压出来十个的安装包
此时可以用find命令查看一下当前系统中存在mysql的目录,只有两个
mysql解压后还需要进行安装
rpm安装包是由RedHat红帽公司发明的一个软件包格式,用rpm -ivh 软件包名 进行软件包的安装,依次执行以下命令
rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm
注: 在安装最后一个server包时,如果报错依赖检测失败
执行这条指令忽略依赖即可
rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm --nodeps --force
注:Delta RPMs disabled because /usr/bin/applydeltarpm not installed
deltarpm没有安装,接下来我们安装即可,执行以下指令
yum provides '*/applydeltarpm' #查看依赖包的位置
yum -y install deltarpm #安装命令
注:[Errno 14] curl#6 - “Could not resolve host: mirrors.ustc.edu.cn; Unknown error” 正在尝试其它镜像。
检查是否配置dns
vim /etc/sysconfig/network-scripts/ifcfg-ens33
配置DNS
DNS1=8.8.8.8
DNS2=114.114.114.144
执行完之后再执行find指令查看一下
正确使用
1、启动mysql
mysql安装后,系统中会自动创建mysqld服务文件,目录为
/lib/systemd/system/mysqld.service
可以直接执行以下命令
systemctl start mysqld //开启
systemctl status mysqld //查看状态
systemctl stop mysqld //停止
systemctl restart mysqld //重启
systemctl disabled mysqld //禁止开机自动启动
systemctl enable mysqld //允许开机自动启动
这里启动mysql
systemctl start mysqld
2、搜索临时密码
mysql安装好后,会默认创建一个临时root密码
在/var/log/mysqld.log文件中
①进入编辑器
vi /var/log/mysqld.log
:/password
②用grep命令
grep "password" /var/log/mysqld.log
得到 临时密码: ?uc#N.Qul4qS 临时密码复杂不好记,为方便学习,需要修改
3、登录 输入密码
mysql -uroot -p
4、修改密码并设置权限
① 取消密码复杂度的验证 (MySQL要求密码中必须包含大小写字母数字和特殊字符)
set global validate_password_policy=0;
② 取消密码的长度限制 (MySQL默认要求密码必须大于8位)
set global validate_password_length=1;
③ 修改root用户的密码为root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
改完后此时mysql数据库的用户名和密码为 root root
此时可以退出mysql,再登录一下看看能否登录成功,显然登录成功了
退出mysql
exit;
5、给root用户授权可以远程登录
① ip地址可以互通
② 开放3306端口
针对这个问题的解决办法:
方法一:开放端口
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
方法二:关闭防火墙
systemctl stop firewalld 关闭防火墙
③ 启动mysql没有监听3306端口
systemctl status mysql
ps -ef | grep mysql
systemctl start mysqld
④ 允许远程ip
mysql除了自己以外把其他任何ip地址都放入黑名单,不可信任
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
//授予所有权限 所有仓库.表格 用户 所有ip地址
‘root’@‘192.168.10.43’ root 用户 只能在这个ip地址登录
⑤ 刷新权限
flush privileges;
OK,现在可以远程登录了