MySQL8.0大师之路:第8章:MySQL下载安装-8.3 [Linux]MySQL 8.0.19 下载安装详解
安装环境:# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 8.1.1911 (Core)
Release: 8.1.1911
Codename: Core
#
注意:CentOS 8 没有提供这个命令 “lsb_release -a” ,但是提示你是否安装?选择Y后会自动安装完成。当然也可以手动执行命令安装:yum install -y redhat-lsb
如果遇到这个问题,解决方案如下:
问题:centos8 市场 Cannot update read-only repo
解决方法:
1、dnf install -y centos-release-stream
2、dnf update
3、重启CentOS 8
安装方法一:在线傻瓜式安装
1.用root用户或具有sudo特权的用户进行安装
# dnf install @mysql
选择Y会继续执行。再次输入Y后安装完成。
2.启动服务,并设置开机启动
# systemctl enable --now mysqld
3.验证 mysqld 是否正在运行
# systemctl status mysqld
结果:Active: active (running) since Mon 2020-03-30 19:11:12 CST; 39s ago
到此 安装MySQL 8.0成功!!!
安装方法二:在线傻瓜式安装
1.获取yum地址或rpm包
官方地址:https://dev.mysql.com/downloads/repo/yum/
根据OS版本,选择Download,在“No thanks, just start my download.”右键选择“复制链接地址”这样就可以把地址复制下来了,当然也可以直接点击,把rpm包下载下来后进行安装(直接进入第3步)。
2.根据第一步获取下载链接后可以在命令行中直接下载:
# wget https://dev.mysql.com/get/mysql8 ... se-el8-1.noarch.rpm
3.安装MySQL:
# rpm -ivh mysql80-community-release-el8-1.noarch.rpm
4.安装mysql服务:
# yum install mysql-server
5.设置开机启动:
# systemctl enable mysqld.service
6.启动服务:
# systemctl start mysqld.service
安全性:
# mysql_secure_installation
运行mysql_secure_installation脚本,该脚本执行一些与安全性相关的操作并设置MySQL root 密码(移除匿名用户、禁用root远程登录、删除test数据库、重新加载权限表)
密码加密方式:
由于CentOS 8中的某些客户端工具和库与caching_sha2_password方法不兼容,因此CentOS 8存储库中包含的MySQL 8.0服务器设置为使用旧的mysql_native_password身份验证插件,该方法在上游MySQL 8.0发行版中设置为默认。对于大多数设置,mysql_native_password方法应该没问题,但是,如果你想将默认身份验证插件更改为caching_sha2_password,这样可以更快并提供更好的安全性,请打开以下配置文件:
# vim/etc/my.cnf.d/mysql-default-authentication-plugin.cnf
将default_authentication_plugin的值更改为caching_sha2_password:
default_authentication_plugin=caching_sha2_password
关闭并保存文件,然后重新启动MySQL服务器以使更改生效:
# systemctl restart mysqld
方法三:tar包安装(推荐)
1.下载tar文件:https://dev.mysql.com/get/Downlo ... c2.12-x86_64.tar.xz
2.通过rz命令上传到指定的文件夹/usr/local(rz如果没有可以安装一下:yum install -y lrzsz)
为什么选择 /usr/local 这个路径安装呢?是因为MySQL默认安装路径是这个,选用这个路径是,使用它的默认属性安装,后面我们还会讲解自定义安装。
3.解压:# tar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
4.重命名解压后的文件夹:# mv mysql-8.0.19-linux-glibc2.12-x86_64 mysql
解压完成后 由462M变成 2.5G左右(可以用命令查看:du -h --max-depth=1)
5.增加用户及用户组
# groupadd mysql
# useradd -r -g mysql -s /bin/false mysql
注意:可以用命令查看一下是否存在mysql用户:# cat /etc/passwd |grep mysql另外,强烈建议使用:-s /bin/false ,这个可以用来防止该用户登录。
6.切换到 /usr/local 目录 建立存放数据库数据的目录 data(名字随便命名)
# cd /usr/local
# cd mysql
# mkdir data
7.把新建立的data目录指定给mysql组及mysql用户。
# chown mysql:mysql data
8.改变data权限
# chmod 750 data
9.初始化数据库
# ./bin/mysqld --initialize --user=mysql
注意:初始化后会生成密码
10.启用SSL协议
# ./bin/mysql_ssl_rsa_setup
SSL介绍
SSL(Secure Socket Layer:安全套接字层)利用数据加密、身份验证和消息完整性验证机制,为基于TCP等可靠连接的应用层协议提供安全性保证。
SSL协议提供的功能主要有:
[*]1、数据传输的机密性:利用对称密钥算法对传输的数据进行加密。
[*]2.、身份验证机制:基于证书利用数字签名方法对服务器和客户端进行身份验证,其中客户端的身份验证是可选的。
[*]3、消息完整性验证:消息传输过程中使用MAC算法来检验消息的完整性。
如果用户的传输不是通过SSL的方式,那么其在网络中数据都是以明文进行传输的,而这给别有用心的人带来了可乘之机。所以,现在很多大型网站都开启了SSL功能。同样地,在我们数据库方面,如果客户端连接服务器获取数据不是使用SSL连接,那么在传输过程中,数据就有可能被窃取。
提示:
可以用命令查看当前数据库是否启用了SSL协议
mysql> show variables like 'have_ssl';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_ssl | YES |
+---------------+-------+
1 row in set (0.00 sec)
mysql>
11.守护进程 启动 mysql 服务
# ./bin/mysqld_safe --user=mysql &
12.推荐启动(停止)命令
切换到目录:# cd /usr/local/mysql/
在该目录下有一个文件夹:support-files,把该文件夹下的文件 mysql.server 拷贝到 /etc/init.d/ 这目录
# cp support-files/mysql.server /etc/init.d/mysql.server
这样就可以管理数据库了:启动、停止、停止启动
切换到目录:/etc/init.d
[*]启动:# ./mysql.server start说明:查看底层脚本,会发现在启动时调用的是:$bindir/mysqld_safe
[*]停止:# ./mysql.server stop
[*]重启:# ./mysql.server restart
[*]查看状态:# ./mysql.server status
[*]重新加载(强制动态启动):# ./mysql.server reload或者 # ./mysql.server force-reload说明:如果想要更改配置而不需停止并重新启动服务,则使用该命令。在对配置文件作必要的更改后,发出该命令以动态更新服务配置。
13.添加环境变量
# cd
# vi .bash_profile
# pwd
/root
# source .bash_profile
#
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
非常规安装:
1.改变数据目录:改变之前先停掉MySQL服务相关进程
需要在下面路径中建立my.cnf 文件
/etc/my.cnf
添加下面内容:
datadir=/MySQLDir/dataDir
2.改变MySQL程序目录:
需要在上面的文件中添加如下配置:
basedir=/soft/mysql
1.查看防火墙状态:systemctl status firewalld.service
框中(active(running))显示防火墙处于激活状态
2.停止运行防火墙:systemctl stop firewalld.service
3.再次查看防火墙状态:systemctl status firewalld.service
框中(inactive(dead))防火墙进程处于未激活状态,停止服务成功
4.禁止防火墙自启动:“systemctl disable firewalld.service”
6防火墙的开启和自启动命令:
1、启动:systemctl start firewalld.service
2、防火墙随系统开启启动: systemctl enable firewalld.service
仅限于演示,如果是用于生产,请将端口号 3306和33060 加到防火墙策略中。
查看当前启动的mysql数据端口:show global variables like 'port';
防火墙已经开启
1、开启端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
2、重启防火墙
firewall-cmd --reload
查看已经开放的端口:
firewall-cmd --list-ports
附:CentOS 8 防火墙相关知识:
1、安装
yum install iptables-services #安装iptables
2、systemctl使用
systemctl unmask firewalld #执行命令,即可实现取消服务的锁定
systemctl mask firewalld # 下次需要锁定该服务时执行
systemctl start firewalld.service #启动防火墙
systemctl stop firewalld.service #停止防火墙
systemctl reloadt firewalld.service #重载配置
systemctl restart firewalld.service #重启服务
systemctl status firewalld.service #显示服务的状态
systemctl enable firewalld.service #在开机时启用服务
systemctl disable firewalld.service #在开机时禁用服务
systemctl is-enabled firewalld.service #查看服务是否开机启动
systemctl list-unit-files|grep enabled #查看已启动的服务列表
systemctl --failed #查看启动失败的服务列表
3、firewall-cmd使用
firewall-cmd --state #查看防火墙状态
firewall-cmd --reload #更新防火墙规则
firewall-cmd --state #查看防火墙状态
firewall-cmd --reload #重载防火墙规则
firewall-cmd --list-ports #查看所有打开的端口
firewall-cmd --list-services #查看所有允许的服务
firewall-cmd --get-services #获取所有支持的服务
#区域相关
firewall-cmd --list-all-zones #查看所有区域信息
firewall-cmd --get-active-zones #查看活动区域信息
firewall-cmd --set-default-zone=public #设置public为默认区域
firewall-cmd --get-default-zone #查看默认区域信息
firewall-cmd --zone=public --add-interface=eth0 #将接口eth0加入区域public
#接口相关
firewall-cmd --zone=public --remove-interface=eth0 #从区域public中删除接口eth0
firewall-cmd --zone=default --change-interface=eth0 #修改接口eth0所属区域为default
firewall-cmd --get-zone-of-interface=eth0 #查看接口eth0所属区域
4、用例
firewall-cmd --query-port=8080/tcp # 查询端口是否开放
firewall-cmd --add-port=80/tcp --permanent #永久添加80端口例外(全局)
firewall-cmd --remove-port=80/tcp --permanent #永久删除80端口例外(全局)
firewall-cmd --add-port=65001-65010/tcp --permanent #永久增加65001-65010例外(全局)
firewall-cmd --zone=public --add-port=80/tcp --permanent #永久添加80端口例外(区域public)
firewall-cmd --zone=public --remove-port=80/tcp --permanent #永久删除80端口例外(区域public)
firewall-cmd --zone=public --add-port=65001-65010/tcp --permanent #永久增加65001-65010例外(区域public)
firewall-cmd --reload #重启防火墙(修改配置后要重启防火墙)
页:
[1]