Xshell
和Xftp
等访问CentOS系统的工具MySQL Community Server 社区版本,开源免费,自由下载,但不提供官方技术支持,适用于大多数普通用户。
MySQL Enterprise Edition 企业版本,需付费,不能在线下载,可以试用30天。提供了更多的功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户。
MySQL Cluster 集群版,开源免费。用于架设集群服务器,可将几个MySQL Server封装成一个Server。需要在社区版或企业版的基础上使用。
MySQL Cluster CGE 高级集群版,需付费。
截止目前,官方最新版本为8.0.29,本文中主要使用8.0.25版本中MySQL Community Server,不求最新,只求稳定。
MySQL :: Download MySQL Community Server (Archived Versions)
需要注意选择Archived Versions(其他版本时),注意以下事项
使用rpm命令安装扩展名为".rpm"的软件包,rpm命令详解以及命名格式如下图
Yum(全称为 Yellow dogUpdater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理基础之上,需联网,从互联网获取的yum源,直接使用yum命令安装。
针对tar.gz 这样的压缩格式,要用tar命令来解压;如果是其它压缩格式,就使用其它命令。
Linux三种方式对比
安装方式 | 安装方式特点 |
---|---|
rpm | 安装简单,灵活性差,无法灵活选择版本、升级 |
rpm repository(yum命令搭配仓库使用) | 安装包极小,版本安装简单灵活,升级方便,需要联网安装 |
源码包 | 安装最复杂,时间长,参数设置灵活,性能好 |
解压后需要抽取的文件
如果你是用rpm安装, 检查一下RPM PACKAGE:
rpm -qa | grep -i mysql # -i 忽略大小写
检查mysql service:
systemctl status mysqld.service
如果存在mysql-libs的旧版本包,显示如下:
如果不存在则无显示跳到新的行
由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限。执行下面命令:
chmod -R 777 /tmp
2.2检查依赖libaio(内核依赖)包和net-tools(网络检测功能依赖)
rpm -qa|grep libaio
rpm -qa|grep net-tools
如果存在,则会显示下面界面
1.移动到xftp上传的目录下
cd /opt
在mysql的安装文件目录下执行:(必须按照顺序执行)
第一步:rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm
第二步:rpm -ivh mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm
第三步:rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm
第四步:rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm
第五步:rpm -ivh mysql-community-server-8.0.25-1.el7.x86_64.rpm
-i
, --install 安装软件包-v
, --verbose 提供更多的详细信息输出-h
, --hash 软件包安装的时候列出哈希标记 (和 -v 一起使用效果更好),展示进度条因为MySQL被Oracle收购之后,MySQL怕Oracle闭源这个软件,所以就新开一个mariadb-libs来代替老的libs包
只需要执行下面命令:
yum remove mysql-libs
解决,清除之前安装过的依赖即可
查看MySQL版本
执行如下命令,如果成功表示安装mysql成功。类似java -version如果打出版本等信息
mysql --version
#或
mysqladmin --version
执行如下命令,查看是否安装成功。需要增加 -i 不用去区分大小写,否则搜索不到。
```shell
rpm -qa|grep -i mysql
服务的初始化
为了保证数据库目录与文件的所有者为 mysql 登录用户,如果你是以 root 身份运行 mysql 服务,需要执
行下面的命令初始化:
mysqld --initialize --user=mysql
说明: --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过
期,登录后你需要设置一个新的密码。生成的临时密码会往日志中记录一份。
查看密码:
cat /var/log/mysqld.log
root@localhost: 后面就是初始化的密码
启动MySQL,查看状态
#加不加.service后缀都可以
启动:systemctl start mysqld.service
关闭:systemctl stop mysqld.service
重启:systemctl restart mysqld.service
查看状态:systemctl status mysqld.service
mysqld 这个可执行文件就代表着MySQL 服务器程序,运行这个可执行文件就可以直接启动一个服务器进程。
查看进程:
ps -ef | grep -i mysql
systemctl list-unit-files|grep mysqld.service
默认是enabled。
如不是enabled可以运行如下命令设置自启动
systemctl enable mysqld.service
systemctl disable mysqld.service
通过 mysql -hlocalhost -P3306 -uroot -p
进行登录,在Enter password:录入初始化密码,初始密码就是上面在日志中查询的到密码
接着可以修改初始密码为你想要的密码,比如我这里修改为123456【如果实际是生产环境千万不要设置这么简单的密码】
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
1.查询默认host的信息
如果想要windows主机或者其他主机通过root用户访问Centos下的Mysql服务,需要开放root账户的Host访问权限。
在Linux系统MySQL下测试:
use mysql;
select Host,User from user;
可以看到root用户的当前主机配置信息为localhost。
2.修改Host为通配符%
Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.81.1。这里的意思就是说root用户只能通过192.168.81.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而%是个通配符,如果Host=192.168.81.%,那么就表示只要是IP地址前缀为“192.168.81.”的客户端都可以连接。这里我的windows主机的IP是192.168.81开头的,所以设置为192.168.81.%
update user set host = '192.168.81.%' where user ='root';
如果Host=% ,表示所有IP都有连接权限。
注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置。
最后,还需要重新刷新mysql权限
flush privileges;
3.开放Centos下的防火墙的3306端口
查看防火墙以及开启防火墙相关命令
# 开启、查看、关闭防火墙命令
systemctl start firewalld.service
systemctl status firewalld.service
systemctl stop firewalld.service
#设置开机启用防火墙
systemctl enable firewalld.service
#设置开机禁用防火墙
systemctl disable firewalld.service
开放3306端口
firewall-cmd --add-port=3306/tcp --permanent
重新刷新防火墙
firewall-cmd --reload
4.需要连接Centos的主机做网络测试
做完上面的步骤,就可以做网络确认测试
通过ifconfig命令查看centos主机ip地址
# 查看centos主机ip地址
ifconfig
在你需要连接Centos7的主机上 ping ip地址来确认 网络畅通
# 比如windows ping我的centos主机
ping 192.168.81.120
在你需要连接Centos7的主机上 telnet ip地址 端口号 来确认端口畅通
# 比如windows ping我的centos主机
telnet 192.168.81.120 3306
如果是telnet 测试没通过,需要在连接主机和被连接主机做端口和防火墙的排查,遇到的问题有
telnet既不是批处理文件也不是命令,这时就需要把telnet命令开启
5.最后navicat客户端远程连接测试