Linux 之 MySQL
之前粗略的接触了Linux的基础使用和安装,这次准备在自购的服务器上跑些应用,纯属娱乐,废话不说,上来就先仍数据库。
数据库常用的Oracle
,MySQL
,SQL Server
,MongoDB
等,排名不分先后,自己平时接触最多的也就是MySQL
,MongoDB
,好MySQL
先来一份。
介绍
MySQL是一个开源数据库管理系统,通常作为流行的LEMP(Linux,Nginx,MySQL / MariaDB,PHP / Python / Perl)堆栈的一部分安装。它使用关系数据库和SQL(结构化查询语言)来管理其数据。
CentOS 7更喜欢MariaDB,它是由原始MySQL
开发人员管理的MySQL
分支,旨在替代MySQL。如果你在CentOS 7上运行 yum install mysql
,那么安装的是MariaDB,而不是MySQL
对于 MySQL 也是有好几个类别
- MySQL Community Server:社区版本,开源免费,但不提供官方技术支持
- MySQL Enterprise Edition:企业版本,需付费,可以试用 30 天
- MySQL Cluster 集群版:开源免费。可将几个 MySQL Server 封装成一个 Server
- MySQL Cluster CGE:高级集群版,需付费
- MySQL Workbench:一款专为 MySQL 设计的 ER/数据库建模工具,分为两个版本
- MySQL Workbench OSS:社区版
- MySQL WorkbenchSE:商用版
先检查服务器是否已经安装了mariadb
1 | # 检查是否安装了 mariadb 客户端 |
执行结果如下图,如果没有任何提示,则表示没有安装
执行检查命令,发现有 mariadb 服务,则需要先卸载 mariadb
相关服务
1 | # mariadb 相关卸载 |
清单
- OS: CentOS 7
- DataBase:MySQL 8.0.11
uname -a
查看你 Linux 系统的信息,按照系统版本选择对应的应用
1 | [dc2-user@10-255-0-191 ~]$ uname -a |
安装
官方下载 MySQL Community Server 地址:https://dev.mysql.com/downloads/mysql/
清华镜像 MySQL 地址:https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/
在线安装(推荐方式)
适用于当前安装服务器可以正常互联网访问,如上图,选择方式进入MySQL Yum Repository,选择对应系统的版本,比如 mysql80-community-release-el7-3.noarch.rpm
根据自己设备网络情况选择使用的下载地址
- 官方地址:https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
- 清华镜像:https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-8.0-community-el7-x86_64/mysql80-community-release-el7-3.noarch.rpm
1 | # 1. 获取官方yum源安装包 mysql80-community-release-el7-3.noarch.rpm 是根据官网提供的版本信息 |
设置不区分大小写参数,文件地址
/etc/my.cnf
离线安装
适用于当前安装服务器无法互联网访问,如安装截图所示,选择 MySQL Community Server 类别,然后选择对应系统及版本进行下载,总共需要如下所示相关的应用安装包
按照此顺序进行安装
1 | rpm -ivh mysql-community-common-8.0.22-1.el7.x86_64.rpm |
安装 mysql-community-devel-8.0.22-1.el7.x86_64.rpm
时出错,需要先执行 yum install openssl-devel
命令进行安装 openssl-devel,如下图
安装完上面的包,进行启动 MySQL 服务,并进行相应的配置
1 | # 如果你需要设置不区分大小写,必须在第一次启动 mysqld 服务前设置,lower_case_table_names=1 |
整个安装设置过程如下图
配置
由于MySQL从5.7开始不允许在首次安装后,使用空密码进行登录,系统会随机生成一个密码以供管理员首次登录使用,这个密码记录在/var/log/mysqld.log
文件中
1 | # 1. 查看系统提供密码 |
默认信息
配置信息地址
默认安装配置信息:/etc/my.cnf
MySQL 安装路径
1 | # 查看 MySQL 安装的位置 |
其他配置信息
连接
自己平时习惯使用 Navicat 进行数据库操作,因此这里进行配置链接已在云端刚刚安装的MySQL服务
ERROR 2003
通过本地的工具无法连接到服务器上的 MySQL 服务,错误提示:ERROR 2003 (HY000): Can't connect to MySQL server on '116.85.58.6' (60)
进行原因排查,分别通过 ping
,telnet
命令来检查网络连接情况,发现 IP 是通的,端口不同,那么去看服务器是不是开启了防火墙,如果开启了防火墙,需要将 MySQL 服务的端口排除
对于开启了防火墙的,可以将防火墙关闭,或者设置端口白名单
1 | # 查看防火墙状态,结果显示为running或not running |
SSH 连接 MySQL 所在的服务器,查看防火墙情况,但发现压根没有防火墙,那么此时,要去看看你的云服务器的安全组设置规则,将 3306 暴露出来,查看云服务器安全组设置
在已有安全组中添加安全规则或者新增安全组在新的安全组中添加安全规则
ERROR 1130
按照上图图的配置信息链接MySQL,发现错误提示:ERROR 1130: Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server
原因
不允许从远程登陆MySQL服务,只能在localhost
解决方法
1 | # 切换数据库 |
ERROR 2059
继续重试链接,错误提示:ERROR 2059: Authentication plugin 'caching_sha2_password' cannot be loaded:The specified module could not be found.
原因
MySQL 8不支持动态修改密码验证方式
解决方法
方法一
修改plugin默认的 caching_sha2_password
为 mysql_native_password
1 | # 停止mysql |
方法二
更新你的数据库连接工具,Navicat version12+,Workbench version8+
BDB1507
BDB1507 Thread died in Berkeley DB library,由于其他操作原因造成数据库被破坏问题,可以通过如下命令进行数据库修复
1 | cd /var/lib/rpm/ |
卸载
应用卸载
1 | 快速删除 |
开机自启(可选)
当你安装时设置了开机启动,当不需要再开机启动时,那么再卸载完数据库后,记得在开启启动的列表中删除数据库
1 | chkconfig --list | grep -i mysql |
附录
- How To Install MySQL on CentOS 7
- ERROR 1130
- ERROR 2059