cat /etc/redhat-release
查看是否安装了 MySQL
rpm -qa | grep mysql
查看是否有安装 mariadb,该软件与 MySQL 数据库有冲突,需要手动卸载
# 如果是 CentOS7 可以检测出已经安装了 mariadb
rpm -qa | grep mariadb
如果系统中没有安装过与 MySQL 相关的软件,直接跳到下一步
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
点击 MySQL Community Server
选择 MySQL 的版本
注意 MySQL 的版本需要与 Linux 的版本对应上
- centos7 系统对应的 MySQL 是 el7
- centos8 系统对应的 MySQL 是 el8
一般情况下,直接选择第一个安装包即可,第一个安装包的版本会不定时的更新,与本文所用的安装包有略微的差别,但是并不影响具体的使用
截止
2023-5-11
最新版为mysql-8.0.33-1.el8.x86_64.rpm-bundle.tar
此时有两种方法
- 第一种,直接点击
No thanks, just start my download
进行下载,然后通过上传工具上传到服务器- 第二种,右键
No thanks, just start my download
,选择复制链接,然后在服务器中通过wget
命令下载到服务器
这里通过 wget
命令下载到服务器,安装到 usr/local
目录,总共 838.4M,下载速度比较慢,需要耐心等待
cd /usr/local
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar
ll
解压之后会有很多包产生,为了方便查看,将其解压到 /usr/local/mysql_package
里面
mkdir /usr/local/mysql_package
cd /usr/local/mysql_package
tar -xvf /usr/local/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar -C /usr/local/mysql_package
必须按照顺序执行命令,否则会出现依赖错误的报错,如果安装过程中出现错误,可以参考下一步给出的总结
rpm -ivh mysql-community-common-8.0.31-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.31-1.el8.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.31-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-8.0.31-1.el8.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.31-1.el8.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.31-1.el8.x86_64.rpm
rpm -ivh mysql-community-server-8.0.31-1.el8.x86_64.rpm
按照顺序安装即可解决
大概率是因为下载的 MySQL版本与 Linux 版本对应不上,可以检查一下 MySQL 压缩包后缀名里面的参数是否与系统版本匹配
- centos7 系统对应的 MySQL 是 el7
- centos8 系统对应的 MySQL 是 el8
安装
openssl-devel
即可解决
rpm -ivh mysql-community-devel-8.0.31-1.el8.x86_64.rpm
使用 yum install openssl-devel -y
安装 openssl-devel
yum install openssl-devel -y
再次安装该软件包即可
rpm -ivh mysql-community-devel-8.0.31-1.el8.x86_64.rpm
安装
prel
和libaio
即可解决
查看与 perl 相关的软件
yum list perl
安装
yum install -y perl.x86_64
查看与 libaio 相关的软件
yum list libaio
安装
yum install -y libaio*
mysql -V
mysql --version
rm -rf /usr/local/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar
rm -rf /usr/local/mysql_package/
查看 MySQL 服务状态
systemctl status mysqld
开启 MySQL 服务
systemctl start mysqld
设置 MySQL 服务开机自启
systemctl enable mysqld
重启 MySQL 服务
systemctl restart mysqld
再次查看 MySQL 服务状态,可以看到 MySQL 服务已经成功运行
systemctl status mysqld
systemctl status mysqld
服务器重新启动之后,MySQL 服务会再次启动
systemctl stop mysqld
服务器重新启动之后,MySQL 服务也不会再次启动
systemctl disable mysqld
systemctl start mysqld
systemctl enable mysqld
systemctl restart mysqld
第一次运行 MySQL 服务时,会进行初始化加载,同时会生成一个 root 用户的初始密码,可以通过查看日志文件 /var/log/mysqld.log
获取到 root 用户的初始密码,后续可手动修改密码
cat /var/log/mysqld.log | grep 'password'
mysql -u root -p
alter user 'root'@'localhost' identified by 'BuGu123456!';
# 设置密码长度的最低位数
set global validate_password.length=4;
# 设置密码的安全等级,修改密码安全策略为低(只校验密码长度,至少8位)
set global validate_password.policy=LOW;
show databases;
exit;
提示无法连接到主机,这是因为 3306 端口未开放
如果是云服务器,防火墙的端口、安全组的端口都需要开放
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-port
可以看到提示该 root 用户没有远程访问的权限,不被允许远程链接到 MySQL 数据库
mysql -u root -p
use mysql;
user 表中的 host 字段表示用户的访问权限
select host, user, plugin from user;
注意:此时 root 用户并没有被授权远程访问 MySQL 服务,下图中的 host 字段应该为 localhost,而不是 %,由于我的失误,下面这张图片并不是该步骤对应的图片,在此展示的图片中,root 用户的 host 字段应为 localhost
update user set host='%' where user='root';
flush privileges;
select host, user, plugin from user;
经过修改,root 用户的 host 字段已经成功被修改为 %,表示 root 用户可以远程访问 MySQL 服务
可以看到提示密码校验方式不被允许远程链接到 MySQL 数据库
caching_sha2_password
加密方式在远程访问时候不支持,需要修改为mysql_native_password
注意、注意、注意!!!
修改密码策略的同时,将当前 root 用户的密码的验证策略也修改一下,否则当前用户的密码会失效,使得 root 用户无法使用原密码登录 MySQL 服务,目前我知道的解决办法就是重新安装 MySQL
mysql -u root -p
alter user 'root'@'%' identified with mysql_native_password by 'BuGu123456!';
flush privileges;
连接成功
进入 MySQL 服务
mysql -uroot -p
创建新的数据库
create database test;
连接到目标数据库
use test;
运行指定路径的 SQL 文件
source /root/test.sql;
测试
select * from user;
返回 Linux 界面,将名为 test的数据库备份到指路径的 test1.sql 文件中
mysqldump -uroot -p test > /root/test1.sql
完成后,使用 ll
命令可以查看到导出的 SQL 文件,也即完成备份
ll
文章浏览阅读965次,点赞18次,收藏21次。现在我们有了 2021 年和 2023 年的 NDVI 数据帧,我们需要从 2021 年的值中减去 2023 年的值以捕获 NDVI 的差异。该数据集包括像素级别的植被值,我们将编写一个自定义函数来根据红色和绿色波段的表面反射率计算 NDVI。在我的上一篇文章中,我演示了如何将单个多边形分割/镶嵌为一组大小均匀的六边形。现在我们有了植被损失数据,让我们使用 Kepler.gl 可视化每个六边形的植被损失。将地图保存为 HTML 文件,在浏览器中打开 HTML 以获得更好的视图。现在我们将调用该函数并使用、
文章浏览阅读3.3k次,点赞6次,收藏5次。正态分布,又称高斯分布或钟形曲线,是统计学中最为重要和常用的分布之一。_echarts正态分布图
文章浏览阅读217次。首先要在Mainfest.xml中加入所需要的权限:[html] view plain copyprint?uses-permission android:name="android.permission.SEND_SMS"/> uses-permission android:name="android.permission.READ_SMS"/> _android bundle.get("pdus");
文章浏览阅读2.6k次。0、说明最近在学习 Data Assimilation Research Testbed (DART) 相关内容,其软件是在 Unix/Linux 操作系统下编译和运行的 ,由于我的电脑是 Windows 10 的,DART 推荐可以使用 Windows Subsystem For Linux (WSL) 来创建一个 Windows 下的 Linux 子系统。以下的内容主要介绍如何安装 WSL2,以及 WSL2 的联网。1、如何在 Windows 10 下安装WSL具体的安装流程可以在 microso_wsl2 联网
文章浏览阅读1k次。DB_LINK 介绍在本机数据库orcl上创建了一个prod_link的publicdblink(使用远程主机的scott用户连接),则用sqlplus连接到本机数据库,执行select * from scott.emp@prod_link即可以将远程数据库上的scott用户下的emp表中的数据获取到。也可以在本地建一个同义词来指向scott.emp@prod_link,这样取值就方便多了..._添加 database link重复的数据库链接命
文章浏览阅读3.1k次。ylbtech-云-腾讯云-实时音视频:实时音视频(TRTC)支持跨终端、全平台之间互通,从零开始快速搭建实时音视频通信平台1.返回顶部 1、腾讯实时音视频(Tencent Real-Time Communication,TRTC)拥有QQ十几年来在音视频技术上的积累,致力于帮助企业快速搭建低成本、高品质音视频通讯能力的完整解决方案。..._腾讯实时音视频 分享链接
文章浏览阅读534次,点赞10次,收藏8次。编写一个完整的日历表需要处理许多细节,包括公历和农历之间的转换、节气、闰年等。运行程序后,会输出指定年份的日历表。注意,这个程序只是一个简单的示例,还有很多可以改进和扩展的地方,例如添加节气、节日等。_农历库c语言
文章浏览阅读1w次,点赞28次,收藏27次。FL Studio21.1.1.3750中文破解版是最优秀、最繁荣的数字音频工作站 (DAW) 之一,日新月异。它是一款录音机和编辑器,可让您不惜一切代价制作精美的音乐作品并保存精彩的活动画廊。为方便用户,FL Studio 21提供三种不同的版本——Fruity 版、Producer 版和签名版。所有这些版本都是独一无二的,同样具有竞争力。用户可以根据自己的需要选择其中任何一种。FL Studio21.1.1.3750中文版可以说是一站式综合音乐制作单位,可以让您录制、作曲、混音和编辑音乐。_fl studio 21 注册机
文章浏览阅读1.3k次。冯诺依曼计算机工作原理冯 诺依曼计算机工作原理的核心是 和 程序控制世界上不同型号的计算机,就其工作原理而言,一般都是认为冯 诺依曼提出了什么原理冯 诺依曼原理中,计算机硬件系统由那五大部分组成的 急急急急急急急急急急急急急急急急急急急急急急冯诺依曼结构计算机工作原理的核心冯诺依曼结构和现代计算机结构模型 转载重学计算机组成原理 一 冯 诺依曼体系结构从冯.诺依曼的存储程序工作原理及计算机的组成来..._简述冯诺依曼计算机结构及工作原理
文章浏览阅读559次。这次在随机乱下的基础上加上了一些简单的处理,如进营、炸棋、吃子等功能,在和敌方棋子产生碰撞之后会获取敌方棋子大小的一些信息,目前采用的是事件驱动模型,当下完一步棋界面返回结果后会判断是否触发了相关事件,有事件发生则处理相关事件,没有事件发生则仍然是随机下棋。1.事件驱动模型首先定义一个各种事件的枚举变量,目前的事件有工兵吃子,摸暗棋,进营,明确吃子,炸棋。定义如下:enum MoveE..._军棋引擎
文章浏览阅读85次。1, 模板观念与函数模板简单模板: template< typename T > T Function( T a, T b) {… }类模板: template struct Object{……….}; 函数模板 template< class T> inline T Function( T a, T b){……} 不可以使用不同型别的..._geekband 讲义
文章浏览阅读158次。"^\d+$" //非负整数(正整数 + 0)"^[0-9]*[1-9][0-9]*$" //正整数"^((-\d+)|(0+))$" //非正整数(负整数 + 0)"^-[0-9]*[1-9][0-9]*$" //负整数"^-?\d+$" //整数"^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0)"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0..._vb.net 正则表达式 取html中的herf