扫码关注“指尖动听”一起学习,一起成长

MySQL是一种关系型数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用标准化语言。
MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。
社区版:免费,但是不提供任何技术支持;
商业版:收费,可以试用30天,官方提供技术支持。
官网:https://www.mysql.com/。

进入官网之后点击 DOWNLOADS。
进入页面;

这里选择 Downloads Archives。
进入页面,选择 MySQL Community Server。

根据你服务器的配置选择,我服务器是 CentOS 7 所以 Operating System 选择 Red Hat Enterprise Linux / Oracle Linux ,OS Version 选择 Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86,64-bit),选择第一个点击 Download 下载。

以下我也提供了 MySQL 的安装包供大家使用,可以在指尖动听知识库公众号后台回复“mysql-8.0.26”获取下载资源。
连上 Linux 服务器(这里的服务器我用的是云服务器),我先创建一个 mysql 的文件夹来存放安装包。
# 在 /soft 目录下创建一个空的文件夹 mysqlmkdir /soft/mysql# 进入这个新建的文件夹下cd /soft/mysql
然后上传之前下载好的 Linux 下 MySQL 的安装包,使用 rz 命令(有些终端工具是可以直接上传文件的,比如 FinalShell)。


在该目录下再创建一个文件夹,并且将安装包解压到该文件夹中。
# 在当前目录下(mysql)下创建一个 mysql-8.0.26 文件夹mkdir mysql-8.0.26# 解压安装包到该目录下tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C mysql-8.0.26
解压完成之后可以切换到 mysql-8.0.26 目录下查看解压后的文件。

可以看到解压后的文件都是 rpm 文件,所以需要用到 rpm 包资源管理器相关的指令安装这些rpm的安装包。
在安装执行rpm安装包之前先下载一些插件,因为 mysql 里面有些rpm的安装依赖于该插件。
yum install openssl-devel# 和yum -y install libaio perl net-tools
安装完该插件之后,依次执行以下命令安装这些rpm包。
rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpmrpm -ivh mysql-community-devel-8.0.26-1.el7.x86_64.rpmrpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpmrpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm
注意:安装rpm包时提示依赖检测失败,请详见文件末尾 可能遇到的问题 寻求解决方案。
在 Linux 中 MySQL 安装好了之后系统会自动的注册一个服务,服务名称叫做 mysqld,所以可以通过以下命令操做 MySQL:
启动 MySQL 服务:systemctl start mysqld;
重启 MySQL 服务:systemctl restart mysqld;
关闭 MySQL 服务:systemctl stop mysqld。
这里先启动MySQL服务,启动需要一点时间,耐心等待一下
systemctl start mysqld
rpm安装 MySQL 会自动生成一个随机密码,可在 /var/log/mysqld.log 这个文件中查找该密码;
cat /var/log/mysqld.log
A temporay password is generated for root@localhost: 密码,这里我安装的 MySQL 生成的临时密码是:JAgc=S-:4fGC,账号是 root,有了账号和密码之后就可以连接 MySQL 了。
# 连接 MySQL mysql -u root -p
到此 Linux 上安装 MySQL 基本结束。
卸载 MySQL 前需要先停止 MySQL;
命令:systemctl stop mysqld
停止 MySQL 之后查询 MySQL 的安装文件:rpm -qa | grep -i mysql

卸载上述查询出来的所有的 MySQL 安装包;
rpm -e mysql-community-client-plugins-8.0.26-1.el7.x86_64 --nodepsrpm -e mysql-community-server-8.0.26-1.el7.x86_64 --nodepsrpm -e mysql-community-common-8.0.26-1.el7.x86_64 --nodepsrpm -e mysql-community-libs-8.0.26-1.el7.x86_64 --nodepsrpm -e mysql-community-client-8.0.26-1.el7.x86_64 --nodepsrpm -e mysql-community-libs-compat-8.0.26-1.el7.x86_64 --nodeps删除MySQL的数据存放目录;
rm -rf /var/lib/mysql/删除MySQL的配置文件备份;
rm -rf /etc/my.cnf.rpmsave(1)修改 root 用户密码
如果你觉得 MySQL 自动生成的密码太难记忆的话,可以连接 MySQL 之后进行修改密码;
ALTERUSER'root'@'localhost'IDENTIFIEDBY'mike.8080';
这里可能会提示 Your password does not satisfy the current policy requirements,意思是您的密码不符合当前规定的要求,你要么就把你的密码设置得复杂点,要么就去降低密码的校验规则。
在 Linux 上安装 MySQL 时会自动安装一个校验密码的插件,默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。修改密码时新密码是否符合当前的策略,不满足则会提示ERROR。
官网上能查到这个密码校验的规则,文档中搜索:validate_password



所以可以将这个限制密码位数设小一点,复杂度类型调底一点
# 将密码复杂度校验调整简单类型setglobal validate_password.policy = 0;# 设置密码最少位数限制为 4 位setglobal validate_password.length = 4;
就可以设置较为简单的密码了。

(2)创建用户与权限分配
默认的 root 用户只能当前节点localhost访问,是无法远程访问的,我们还需要创建一个新的账户,用于远程访问;
语法格式:CREATE USER <用户名> [ IDENTIFIED ] BY [ PASSWORD ] <口令>。
# mysql 8.0 以下createuser'mike'@'%'IDENTIFIEDBY'mike8080';# mysql 8.0createuser'mike'@'%'IDENTIFIEDWITH mysql_native_password BY'mike8080';PS:mysql8.0 的默认密码验证不再是 password 。所以在创建用户时,create user ‘username’@‘%’ identified by ‘password’; 客户端是无法连接服务的,所以在创建用户的时候需要加上 WITH mysql_native_password

创建完用户之后还需要给用户分配权限,这里我将 mike 这个用户分配了所有的权限。
grantallon *.* to'mike'@'%';关于用户、权限关联这块的内容可参考博客:http://u3v.cn/6j1UV6。
(1)启动 MySQL 时提示Failed to start mysqld.service: Unit not found

如果看到这个提示的话说明 mysql 安装失败了,我的建议是卸载重新安装。
(2)安装 rpm 包时提示依赖检测失败
情况一:因 mariadb 导致依赖检测失败;

解决办法:卸载mariadb-libs。
rpm -e mariadb-libs --nodeps
再重新安装失败的那个rpm包。
情况二:因 libcrypto.so.10.. 导致依赖检测失败;

显示缺少了 libcrypto.. 相关的依赖,而 libcrypto.. 存在于 openssl 中,可以通过以下命令查看 openssl 是否安装。
openssl version
如果没有出现版本信息,则需要安装 openssl,命令如下:
yum install openssl如果有版本信息,则查看版本是不是 OpenSSL 1.1.1,OpenSSL 1.1.1 有兼容性的问题,通过:
ldconfig -p | grep libcrypto.so
或者:
ls -l /usr/lib64/libcrypto.so
是能看到有 libcrypto 相关的命令的,只不过是 libcrypto.so.1.1 的;
解决办法:compat-openssl10 提供与不支持使用 OpenSSL-1.1 编译的早期版本和软件的兼容性,安装 compat-openssl10
yum install compat-openssl10再重新安装失败的那个rpm包。
(3)远程连接时出错

这个错误提示出现的可能有很多,我就列举几个我能想到的吧。
首先去检查你的 MySQL是否关掉了,如果关了的话重启再连接;
服务器上面的防火墙是否是开着的状态,或者 3306 的端口是否对外开放;
如果你的服务器是云服务器的话,需要去云服务器上面开放 3306 的端口。
第一种情况我就不赘述了,如果你的 MySQL 是安装在虚拟机上面的话,简单粗暴的方式是直接关闭防火墙。
# 关闭防火墙systemctl stop firewalld.service # 查看防火墙的状态firewall-cmd --state # 禁止firewall开机启动systemctl disable firewalld.service或者为了安全,只开放特定的端口号,MySQL 默认端口是 3306。
# 关闭防火墙systemctl stop firewalld.service # 3306 端口对外开放firewall-cmd --remove-port=3306/tcp --permanent # 重启防火墙firewall-cmd --reload但是,如果你 MySQL 并不是安装在虚拟机上的,而是放到云服务器上面,那你必须还得在云服务上面开放这几个端口;
比方说我的 MySQL 是运行在 某某云 上面的,我就得做如下设置:找到我的服务器,点击 更多,选择 管理。

进入下一个页面之后,选择 防火墙;

添加 3306 端口对外开放。

测试连接:

如果这篇文章能够帮到你,麻烦动动小手转发、收藏、点赞,在看~,同时也欢迎各位童靴评论区各抒己见畅所欲言交流。
最后,如果你对嵌入式学习感兴趣,指尖动听提供专业的付费学习(芯片/智能家居/音视频/汽车等行业在职学长学姐多对一手把手保姆级指导),可以添加老学长VX:feimao001122 或 80008097,也可以先看下嵌入式学习收徒,高薪offer等你来!!!
数百位同学的一致好评,专业团队态度认真靠谱负责!

