MySQL是目前最为流行的开放源码的数据库,是完全网络化的跨平台的关系型数据库系统,它是由瑞典MySQLAB公司开发,目前属于
Oracle
公司。任何人都能从Internet下载MySQL软件,而无需支付任费用,并且“开放源码”意味着任何人都可以使用和修改该软件。下面我们来学习如何在CentOS7环境安装MySQL数据库,并且进行远程访问。
一、设置阿里yum源,提高下载速度
前提:能上网,ping www.baidu.com
1、首先查看本地yum源
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# cat ./CentOS-Base.repo
可以发现yum地址默认是centos的官网镜像yum,服务器在外网,因此下载速度慢。这里我们可以更换为阿里yum源镜像。
2、下载wget工具
这里先安装wget工具,后面会用到。
[root@localhost ~]# yum install -y wget
3、删除yum仓库中所有镜像
[root@localhost yum.repos.d]# rm -rf ./*
4、下载新的yum源
在阿里云官网找到CentOS的yum镜像地址
阿里云官网:
阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)
找到CentOS7的yum下载链接。
运行这两条命令。
//下载Centos-Base.repo文件
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
//生成缓存
[root@localhost ~]# yum makecache
这样yum镜像已经默认更改为阿里yum源了。
二、下载MySQL数据库
上面设置好yum源之后,接下来开始安装mysql数据库,这里以mysql-8.0为例
1、下载mysql80-community-server.rpm包
通过下面的命令可以查看,目前还不能安装mysql服务。
[root@localhost ~]# yum install mysql-community-server -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
没有可用软件包 mysql-community-server。
错误:无须任何处理
所以我们还需要下载mysql服务的rpm包。
[root@localhost ~]# yum localinstall -y https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
2、解决“公钥尚未安装”问题
下载好mysql服务的rpm包之后,再次安装发现有些依赖包安装时会出现“公钥尚未安装”的问题。
[root@localhost ~]# yum install mysql-community-server -y
a、检查出错的包的签名
[root@localhost ~]# rpm --checksig /var/cache/yum/x86_64/7/mysql80-community/packages/mysql-community-client-plugins-8.0.33-1.el7.x86_64.rpm
[root@localhost ~]# rpm --checksig /var/cache/yum/x86_64/7/mysql80-community/packages/mysql-community-common-8.0.33-1.el7.x86_64.rpm
检查结果可以发现包的格式是错误的。这里出错的原因暂不清楚,rpm和yum工具理论上可以直接安装二进制包(后缀为.rpm),所有我猜测可能是因为这两个包的格式被更改过,希望有懂的大佬可以指正一下。
b、执行指令
[root@localhost ~]# gpg --export -a 3a79bd29 >3a79bd29.asc
[root@localhost ~]# rpm --import 3a79bd29.asc
[root@localhost ~]# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
c、再次验证
这时候发现rpm包可以使用了。
3、再次安装mysql-community-server
[root@localhost ~]# yum install mysql-community-server -y
再次安装后发现没有报错,安装成功。
三、启动MySQL服务,修改密码
1、查看并启动mysql服务
//首次安装服务并没有启动,通过下面指令启动服务。
[root@localhost ~]# systemctl status mysqld.service
//启动服务
[root@localhost ~]# systemctl start mysqld.service
//再次查看,mysql服务已经启动成功了
2、获取临时密码并修改
查看mysql日志文件 /var/log/mysqld.log获取临时密码。
[root@localhost ~]# cat /var/log/mysqld.log
temporary password…那一行就是我们需要的临时密码。
3、连接mysql
[root@localhost ~]# mysql -u root -p.SFwqu-lK8au
通过输入临时密码,我们就可以连接到数据库了(密码最好复制粘贴,避免出错)。
注意:密码不包括”.”前面的空格(试了很多次都出错了,泪的教训)
4、修改密码以及安全等级策略
连接到数据库之后,我们发现并不能对数据库进行一些基本操作,提示需要修改密码。
这里我们先修改为一个简单一点的密码。
mysql>alter user user() identified by '123456';
可以发现提示密码不符合安全策略,这是因为我们设置的密码复杂度不够,我们再设置一个复杂一点的密码。
mysql>alter user user() identified by 'Hello_mysql2022';
修改完成之后,可以看到已经可以正常访问数据库了。
如果想更改密码安全等级策略低一些,可以通过以下指令进行修改。
mysql>set global validate_password.policy=0;
mysql>set global validate_password.length=1;
现在可以将密码更改为更简单了。
四、远程连接
做完以上工作后,我们就可以开始测试远程访问数据库了。
1、首先划分环境
mysql服务器是安装在linux虚拟机上的,我们要通过宿主机模拟客户端去访问。
需要设置宿主机的vnet8网卡 ip与虚拟机的网卡ip处于同一网段。
宿主机:172.16.24.1
虚拟机:172.16.24.77
2、测试连通性
在宿主机上ping通虚拟机(不需要虚拟机ping通宿主机,由于我们宿主机一般都会开启防火墙,所以ping不通也很正常)
3、开放端口
通过命令开放3306号端口,提供远程连接。
[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
重新加载mysql服务。
[root@localhost ~]# firewall-cmd --reload
success
再次进入mysql数据库进行配置。
[root@localhost ~]# mysql -uroot -p123456
mysql> use mysql;
mysql> update user set host='%' where host='localhost';
mysql> flush privileges;
显示Query OK则说明配置完成。
退出数据库,再次访问。
[root@localhost ~]# mysql -h172.16.24.77 -uroot -P3306 -p123456
成功进入则说明远程访问成功了。
4、在宿主机上进行远程连接
方法一:通过dos终端访问
按住win+R键,运行cmd指令进入终端
通过
mysql -h主机号 -P端口号 -u用户名 -p用户密码
进行连接,结果显示以及连接上虚拟机的数据库了。
方法二:通过图形用户软件来连接,这里以Navicat为例
打开Navicat软件 点击连接–>选择MySQL
输入信息
创建一个数据库和表,添加信息
再返回虚拟机上查看表的信息。
远程访问成功。
以上就是CentOS7下安装mysql8.0以及远程访问的过程,如有遗漏或错误,望各位能够指正。