ToB企服应用市场:ToB评测及商务社交产业平台

标题: MySQL概述安装 [打印本页]

作者: 花瓣小跑    时间: 2023-12-30 03:21
标题: MySQL概述安装
一,数据库概述

1.为什么要使用数据库

2.数据库与数据库管理系统

1.数据库的相关概念

2.DB 与 DBMS 的关系

​        数据库管理系统(DBMS)可以管理多个数据库,一个管理系统对应一个或多个数据库,一个数据库对应多个表,一张表对应多条数据,一条数据对应多个字段。
3.常见的数据库管理系统排名(DBMS)

​         查看排名的网站:https://db-engines.com/en/ranking
3 关系型数据于非关系型数据库

1.关系型数据库 - RDBMS


2.非关系型数据库 - N-RDBMS

非关系型数据库,是传统关系型数据库,舍得版本。基于键值对存储数据,不需要经过 SQL 语言的解析,"性能非常高"。同时,通过减少不常用的功能,从而提供性能。
4.关系型数据库设计规则

1.表,行,列

ORM-面向对象思想(对象关系映射):
2.表的关联关系

表与表之间的数据记录是存在关系的,一般这种使用 "关系模型" 来表示。常见的有以下四种关联关系:
1.一对一关联

当一张表中的字段(列)太多时,在查询时会造成大量内存冗余。查询效率低。因此我们可以根据(常用字段或者说常用业务)将表拆为两张或多张表,表之间的关系是:"一对一的关系",从而提高查询效率。
2. 一对多关联

建表原则:在 "从表-图层表" 创建一个字段,该字段作为外键指向 "主表-点位表" 的主键,建立一对多的关系。
3.多对多关联

建表原则:要表示多对多关系,必须创建第三张表,该表通常称为 "联接表/中间表",该表将多对多关系划分为两个一对多关系,将这两个表的主键都插入到第三个表中,从而建立关系。这个 "多" 在 "中间表" 中体现。
4.自我引用

建表原则:在表中创建一个 "自我引入" 字段引用表中其他数据的主键,建立关系。

前言

常见的 MySQL  安装共有五种方式,分别是:
如有需要使用 "Docker" 安装 MySQL 的话,请参阅:https://hub.docker.com/r/mysql/mysql-server/
如有需要 "定制化" 或 "自主扩展" MySQL 的话,请参阅:https://dev.mysql.com/doc/refman/8.0/en/source-installation.html
说明:本文章中只介绍 "通用二进制文件安装" 以及 "rpm 文件安装",这两种方式安装。
二,Linux中卸载MySQL数据库

说明:第一次安装请略过!
1.检查是否安装 MySQL

使用一下命令查看当前安装MySQL的情况,是否安装了 MySQL
  1. rpm -qa|grep -i mysql
复制代码
显示一下内容说明安装了:
  1. MySQL-client-5.5.25a-1.rhel5
  2. MySQL-server-5.5.25a-1.rhel5
  3. ...
复制代码
停止MySQL服务,删除卸载安装的 MySQL。命令:rpm -e –-nodeps 包名
  1. rpm -ev MySQL-client-5.5.25a-1.rhel5
  2. rpm -ev MySQL-server-5.5.25a-1.rhel5
复制代码
2.查找MySQL的目录

查找 MySQL 目录(提示:现在很多都是使用编译的 MySQL 安装包进行安装的,所以查找文件是必须的)
  1. find / -name mysql
复制代码
具体要根据个人的情况,删除对应的 mysql 目录(注意:宁可不删,不可乱删!)。
注意:/etc/my.cnf 不会删除,需要进行手工删除。
  1. rm -rf /etc/my.cnf
复制代码
3.检查是否卸载成功

再次查找机器是否安装 MySQL(注意:再次检查文件是必须的)
  1. rpm -qa|grep -i mysql
复制代码
  1. find / -name /etc/my.cnf
复制代码
无结果说明卸载(删除)成功!
三,Linux下安装MySQL数据库 - 二进制文件

1.查看环境信息


  1. uname -a
复制代码
uname 命令选项:
本文章是:GNU/Linux 的 x86_64 位操作系统。
  1. # 查看Linux系统版本的命令
  2. lsb_release -a
  3. # 或者
  4. cat /etc/redhat-release
复制代码
本文章使用的是:CentOS Linux release 7.6.1810 (Core) 操作系统版本
扩展 - Redhat系的Linux系统请使用:
  1. cat /etc/issue
复制代码
2.下载 MySQL

打开官方下载地址:https://downloads.MySQL.com/archives/community/ 或者 https://dev.mysql.com/downloads/MySQL/ 根据自己对应是系统,以及版本进行选择,这里演示的是Linux系统的安装 MySQL 8.0.20(本文章是:GNU/Linux 的 x86_64 位操作系统)。


  1. wget https://cdn.MySQL.com/archives/MySQL-8.0/MySQL-8.0.20-linux-glibc2.12-x86_64.tar.xz
复制代码
3.上传安装包并解压

  1. mkdir -p /usr/local/mysql
复制代码
注意:从 MySQL 8.0 开始下载的安装包是 ".xz" 结尾的了,需要先使用 xz 命令处理。
  1. xz -d mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
复制代码
解压 tar压缩包 命令:
  1. tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar
复制代码

  1. mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql
复制代码
  1. pwd
复制代码

名称:"mysql",安装路径:"/usr/local/mysql"。这些信息很重要哦!
4.安装前准备

说明:MySQL 依赖 libaio 库,如果未在本地安装此库,则数据库初始化和后续的服务器启动步骤将会失败。
如果未安装,在初始化时可能遇到下面的报错:
  1. ./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directoryx
复制代码
libaio 检查命令:
  1. whereis libaio.so.1
复制代码

出现以上结果说明 libaio 库已经安装。
如果没有找到 "libaio.so.1" 文件,就要手动安装 libaio 库。
方式1:yum 安装。
  1. yum install -y libaio
复制代码
注意:此时,使用 yum 命令安装,电脑网络必须保证是正常的。
方式2:离线安装。
下载地址:https://centos.pkgs.org/7/centos-x86_64/libaio-0.3.109-13.el7.i686.rpm.html 网站或镜像地址 http://mirror.centos.org/centos-7/7/os/x86_64/Packages/。
将安装包上传到服务器执行以下命令安装。
  1. rpm -ivh libaio-0.3.109-13.el7.i686.rpm
复制代码
安装之后请再次执行 "whereis libaio.so.1" 命令再次检查是否安装成功。

  1. rpm -qa|grep mariadb
复制代码

出现以上结果说明系统中安装了 mariadb。
  1. # 强制卸载 mariadb
  2. rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
复制代码
卸载之后请再次执行 "rpm -qa|grep mariadb" 检查是否卸载成功。


  1. groupadd mysql
复制代码
  1. useradd -r -g mysql mysql
复制代码
说明:所有的文件和目录都应该在 mysql 用户下(扩展:useradd 中的 "-r" 表示建立为系统帐号)。

  1. mkdir -p /usr/local/mysql/data
复制代码


  1. chown -R mysql:mysql /usr/local/mysql/data
复制代码
  1. chown -R mysql:mysql /usr/local/mysql/mysql
复制代码

说明:"my.cnf" 文件是 MySQL 的默认配置文件,位于 "/etc/my.cnf"。
  1. vi /etc/my.cnf
复制代码
打开 "my.cnf" 文件将下面配置粘贴进去。
  1. [mysqld]
  2. bind-address=0.0.0.0
  3. port=3306
  4. user=mysql
  5. basedir=/usr/local/mysql/mysql #指定的是MySQL安装目录
  6. datadir=/usr/local/mysql/data #指定的是MySQL数据目录
  7. socket=/tmp/mysql.sock # MySQL 的socket文件
  8. log-error=/usr/local/mysql/data/mysql.err #错误日志存放文件
  9. pid-file=/usr/local/mysql/data/mysql.pid # MySQL 服务进程的pid文件
  10. #skip_ssl #关闭SSL加密连接
  11. character_set_server=utf8mb4 # 设置全局的字符集类型
  12. symbolic-links=0 # 开启数据软连接
  13. explicit_defaults_for_timestamp=true
  14. lower_case_table_names=1 # 设置表名大小不敏感。(MySQL在windows下,默认是对表名大小写不敏感的,但是在Linux下是大小写敏感的)
  15. # 修改使用 "mysql_native_password"(之前的密码认证插件)插件作为认证加密方式
  16. # default_authentication_plugin=mysql_native_password # MySQL8.0 默认认证加密方式为 "caching_sha2_password"
  17. #skip-grant-tables #免密码登陆,注意这时候是没有端口的
复制代码
错误信息:
  1. Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2
复制代码

  1. # MySQL8.0 默认认证加密方式为 "caching_sha2_password" ,为了和之前的版本匹配,需要修改为 "mysql_native_password" 插件作为认证加密方式
  2. default_authentication_plugin=mysql_native_password
复制代码
5.初始化数据库

  1. cd /usr/local/mysql/mysql/bin
复制代码
  1. ./mysqld --defaults-file=/etc/my.cnf --initialize
复制代码

特别注意:在初始化和启动 MySQL 的命令中,指定的 "系统变量" 的优先级是大于 "my.cnf" 文件的。个人建议:my.cnf 配置文件中有的 "系统变量" 就不要在初始化时指定了。

  1. cp /usr/local/mysql/mysql/support-files/mysql.server /etc/init.d/mysql
复制代码
  1. vi /root/.bash_profile
复制代码
  1. :/usr/local/mysql/mysql/bin # MySQL的 "安装目录/bin" 添加到 PATH 之后,说明这里已":"号为分隔符
复制代码
  1. source /root/.bash_profile
复制代码
6.启动和停止 MySQL

  1. service mysql start
  2. # 或者
  3. systemctl start mysql
复制代码


  1. service mysql status
  2. # 或者
  3. systemctl status mysql
复制代码

  1. ps -ef|grep mysql
复制代码
  1. lsof -i:3306
复制代码

  1. service mysql stop
  2. # 或者
  3. systemctl stop mysql
复制代码

7.登录 MySQL 并修改密码

  1. more /usr/local/mysql/data/mysql.err | grep "A temporary password"
复制代码

  1. cd /usr/local/mysql/mysql/bin
复制代码
  1. ./mysql -u root -p
复制代码
  1. alter user 'root'@'localhost' identified with mysql_native_password by 'supconit-mysql';
复制代码
扩展 - 常见修改用户信息的方式:
  1. set password for 'root'@'localhost' = 'supconit-mysql';
复制代码
  1. alter user user() identified by 'supconit-mysql';
复制代码
  1. update mysql.user set host = '%' where user = 'root' and host = 'localhost';
复制代码
注意:使用 DML 语句修改用户密码,必须执行 "刷新权限" 命令也能生效。
  1. flush privileges;
复制代码

navicat下载:链接:https://pan.baidu.com/s/1aknIUwy2L1Ws2uYL88COng  提取码:og7l

特别注意:在使用远程工具远程登录时连接不上。这时就有可能是服务器的防火墙没有关闭导致的!

  1. service firewalld stop
  2. # 或者
  3. systemctl stop firewalld
复制代码
查看服务器的防火墙状态命令:
  1. service firewalld status
  2. # 或者
  3. systemctl status firewalld
复制代码

说明:Active: active (running) "活动(正在运行)的"。

说明:Active: inactive (dead) "不活动(死)的"。
扩展 - 开启防火墙的命令:
  1. service firewalld start
  2. # 或者
  3. systemctl start firewalld
复制代码


8.遇到的问题


原因分析:指定的 "数据目录" 下有文件(即 datadir 选项指向的目录中有文件)。
解决办法:
方式1:删除 "数据目录" 下的所有文件。
方式2:重新创建一个新的 "数据目录",将 datadir 选项指向新的 "数据目录"。

原因分析:没有找到指定的日志文件(即:没有找到 /var/log/mariadb/mariadb.log 文件)。
解决办法:创建文件夹和文件,然后给 mysql 用户授权。
  1. mkdir /var/log/mariadb
复制代码
  1. touch /var/log/mariadb/mariadb.log
复制代码
  1. chown -R mysql:mysql  /var/log/mariadb/
复制代码

原因分析:没有找到指定的 "*.pid" 文件(即没有找到 /data/mysql/localhost.localdomain.pid 文件)。
百度了一下这个文件的作用:
localhost.localdomain.pid 文件中保存的是 MySQL 服务进程的 pid,如果这个文件丢了或者启动时没有找到,就会启动失败。可以创建一个新的,然后放入一些数字。
注意:不建议将此文件放到 /tmp 目录下。
解决办法:在指定的文件夹下创建 localhost.localdomain.pid 文件,然后把 MySQL 的服务进程的 pid 写入到该文件中。
  1. ps -ef |grep mysql
复制代码
  1. vi /data/mysql/localhost.localdomain.pid
复制代码
注意:新创建的文件不能保存一个空文件,需要在里面输入一些数字。

~ MySQL 问题的解决思路

当 MySQL 启动不了,以及在日常的使用中出现了错误,一定要学会看 MySQL 错误日志。毕竟每个人所遇的情况不一定都是一样的,造成 MySQL 启动不了和错误的原因是真的很多。错误日志路径:my.cnf (Windows是my.ini)文件中的 log-error 选择所指向的文件
如果配置文件中未指定该选项,则 Windows 系统下 MySQL 错误日志默认路径为:"数据目录/你的主机名称.err", Linux 系统下错误日志默认路径为:"/var/log/mysqld.log"。
SQL 命令查找方法:
  1. show variables like 'log_error';
复制代码
肉还是别人家的香 - MySQL 通用二进制文件安装网上参考资料:https://blog.csdn.net/qq_37598011/article/details/93489404
四,Linux下安装MySQL数据库 - rpm 文件

基本介绍:
​        本次是在Linux下安装MySQL数据库。rpm 安装包安装。
​        本次演示的MySQL版本为: MySQL Community Server 8.0.20
1.查看环境信息


  1. uname -a
复制代码
uname 命令选项:
本文章是:GNU/Linux 的 x86_64 位操作系统。
  1. # 查看Linux系统版本的命令
  2. lsb_release -a
  3. # 或者
  4. cat /etc/redhat-release
复制代码
本文章使用的是:CentOS Linux release 7.6.1810 (Core) 操作系统版本
扩展 - Redhat系的Linux系统请使用:
  1. cat /etc/issue
复制代码
2.需要安装基础工具

如果你的服务器可以连接外网,并且 yum 可以正常使用,直接运行下面一条命令即可。
  1. yum install -y net-tools perl libaio openssl gcc pcre-devel zlib-devel openssl vim openssl-devel
复制代码
那如果你非常的不幸,要网没网 yum 库还中用的话!祝你好运!所有 rpm 安装包都有的网址:https://pkgs.org/ 直接在页面上搜索即可得到你想要的安装包。

  1. gcc -v
复制代码

注意:如果你的电脑上没有 gcc 的话,就需要安装一个。否则 MySQL 肯定会安装失败!
知识扩展:
根据MySQL官网的资料:https://dev.MySQL.com/doc/refman/8.0/en/source-installation-prerequisites.html
从MySQL 8.0.27开始,MySQL 8.0源代码允许使用C++17功能。若要在所有受支持的平台上启用良好的 C++17 支持级别,Linux环境gcc版本最好在7.1以上,所以先升级gcc版本(gcc7.5.0)。
说明:不升级也不会影响 MySQL 安装。以下安装方式是使用源码安装,解压后需要 "编译"-"安装"。
下载需要的 gcc 版本 :下载网址:http://ftp.gnu.org/gnu/gcc/
上传 gcc-7.5.0.tar.xz 到服务器的 "/usr/local/gcc" 下。
  1. mkdir /usr/local/gcc
复制代码
进入目录 "/usr/local/gcc" 解压 gcc-7.5.0.tar.xz。
  1. xz -d gcc-7.5.0.tar.xz
复制代码
  1. tar -xvf gcc-7.5.0.tar
复制代码
进入解压目录 /gcc-7.5.0,下载依赖(自动下载依赖)。注意:此时,电脑网络必须保证是正常的。
  1. cd gcc-7.5.0
复制代码
  1. ./contrib/download_prerequisites
复制代码
建立文件夹 build,并进入配置,生成 Makefile 文件即安装配置文件
  1. mkdir /usr/local/gcc/gcc-7.5.0/build
复制代码
  1. cd /usr/local/gcc/gcc-7.5.0/build
复制代码
  1. ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
复制代码
编译安装
  1. make & make install
复制代码
删除老版本,为新版本创建软链接
  1. rm -rf /usr/bin/gcc
  2. rm -rf /usr/bin/g++
  3. rm -rf /usr/lib64/libstdc++.so.6
复制代码
创建文件夹映射链接 -- 注意这里要按你们自己的配置来
  1. ln -sf /usr/local/bin/gcc /usr/bin/gcc
  2. ln -sf /usr/local/bin/g++ /usr/bin/g++
复制代码
动态库软链接
  1. ln -sf /usr/local/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6
  2. ln -sf /usr/local/include/c++/7.5.0 /usr/include/c++/7.5.0
复制代码
注意:文件链接的设置根据实际的情况配置。
重启服务器,再次查看gcc版本
  1. reboot
复制代码
  1. gcc -v
复制代码

  1. openssl version
复制代码

可以看到是有的,并且系统自带的版本是 openssl-1.0.2k。
注意:如果你的电脑上没有 openssl-devel 的话,就需要安装一个。否则可能会导致 MySQL 安装失败!

说明:以下安装方式是使用源码安装,解压后需要 "编译"-"安装"。
  1. yum install openssl openssl-devel
复制代码
注意:该方式必须保证 yum 命令正常(有外网)的情况下使用。
说明:以下安装方式是使用源码安装,解压后需要 "编译"-"安装"。
下载需要的 ncurses 版本,下载地址:https://www.openssl.org/source/old/
上传 ncurses-5.9.tar.gz 到服务器的 "/usr/local/openssl" 下
  1. mkdir /usr/local/openssl
复制代码
进入目录 "/usr/local/openssl" 解压 openssl-1.1.1.tar.gz
  1. tar -zxvf openssl-1.1.1.tar.gz
复制代码
进入解压目录 openssl-1.1.1(完整路径为:/usr/local/openssl/openssl-1.1.1)
  1. cd openssl-1.1.1/
复制代码
根据系统环境制作安装配置文件
  1. ./config --prefix=/usr/local/openssl
复制代码
安装配置文件
  1. ./config -t
复制代码
编译安装
  1. make & make install
复制代码

备份旧版本:
  1. mv /usr/bin/openssl /usr/bin/openssl.bak
  2. mv /usr/include/openssl /usr/include/openssl.bak
复制代码
建立新版本的软链接:
  1. # 命令目录软链接
  2. ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
  3. ln -s /usr/local/openssl/include/openssl /usr/include/openssl
复制代码
  1. # 动态库软链接
  2. ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
  3. ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
复制代码
将 openssl 的 lib 目录追加到 "ld.so.conf" 文件中
  1. echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
复制代码
刷新动态链接库:
  1. ldconfig -v
复制代码
说明:如需使用新版本,则需替换原来的软链接指向,即替换原动态库,进行版本升级。

  1. cmake -version
复制代码

可以看到是有的,并且系统自带的版本是 2.0.12.2 的。

说明:以下安装方式是使用源码安装,解压后需要 "编译"-"安装"。
gcc 等必备程序包,如果没有 gcc 请先安装 gcc 等程序包。
  1. yum install -y gcc gcc-c++ make automake
复制代码
注意:该方式必须保证 yum 命令正常(有外网)的情况下使用。
获取 cmake 源码包(下载需要的版本)
下载需要的 cmake 版本,下载地址:https://cmake.org/files/  或者 https://cmake.org/download/
上传 cmake-2.8.10.2.tar.gz 到服务器的 "/usr/local/cmake" 下。
  1. mkdir /usr/local/cmake
复制代码
进入目录 "/usr/local/cmake" 解压 cmake-2.8.10.2.tar.gz
  1. cd /usr/local/cmake
复制代码
  1. tar -zxvf cmake-2.8.10.2.tar.gz
复制代码
进入解压目录 cmake-2.8.10.2(完整路径为:/usr/local/cmake/cmake-2.8.10.2),运行 "bootstrap" 或者 "configure" 文件。
  1. cd cmake-2.8.10.2/
复制代码
安装配置文件
  1. ./bootstrap
  2. # 或者
  3. ./configure
复制代码
编译安装(这步时间有点长)
  1. gmak & gmake install
复制代码
再次查看 cmake 版本
  1. cmake -version
复制代码


说明:以下安装方式是使用通用 "二进制文件安装",解压即用。
下载需要的 cmake 版本,下载地址:https://cmake.org/files/  或者 https://cmake.org/download/
上传 cmake-3.15.5-Linux-x86_64.tar.gz 到服务器的 "/usr/local/cmake" 下
  1. mkdir /usr/local/cmake
复制代码
进入目录(/usr/local/cmake)解压 cmake-3.15.5-Linux-x86_64.tar.gz
  1. tar -zxvf cmake-3.15.5-Linux-x86_64.tar.gz
复制代码
删除老版本,为新版本的文件链接:
  1. # 删除老的 cmake
  2. rm -rf /usr/bin/cmake
复制代码
  1. # 通过建立链接 -替换 cmake
  2. ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake
复制代码
再次查看 cmake 版本
  1. cmake -version
复制代码

**查看电脑上是否安装了 ncurses **
  1. rpm -qa | grep ncurses
复制代码

注意:如果你的电脑上没有 ncuress-devel 的话,就需要安装一个。否则可能会导致 MySQL 安装失败!
ncuress-devel 安装说明:
  1. yum install ncurses-devel
复制代码
注意:该方式必须保证 yum 命令正常(有外网)的情况下使用。
下载需要的 ncurses-devel 版本,下载地址:https://pkgs.org/download/ncurses 或者 http://mirror.centos.org/centos/7/os/x86_64/Packages/ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
将 ncurses-devel 的安装包上传到服务器
安装命令:
  1. rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
复制代码
说明:以下安装方式是使用源码安装,解压后需要 "编译"-"安装"。
下载需要的 ncurses 版本,下载地址:https://ftp.gnu.org/gnu/ncurses/
上传 ncurses-5.9.tar.gz 到服务器的 "/usr/local/ncurses" 下
  1. mkdir /usr/local/ncurses
复制代码
进入目录 "/usr/local/ncurses" 解压 ncurses-5.9.tar.gz
  1. tar -zxvf ncurses-5.9.tar.gz
复制代码
进入解压目录 /ncurses-6.1(完整路径为:/usr/local/ncurses/ncurses-5.9)
  1. cd ncurses-5.9/
复制代码
安装配置文件
  1. ./configure
复制代码
编译
  1. make
复制代码
安装
  1. make install
复制代码
**看到界面最后输出:表示 ncurses-devel 依赖就装好了。 **
  1. installing ./cursesapp.h in /home/wlf/ncurses/include/ncurses
  2. installing ./cursesf.h in /home/wlf/ncurses/include/ncurses
  3. installing ./cursesm.h in /home/wlf/ncurses/include/ncurses
  4. installing ./cursesp.h in /home/wlf/ncurses/include/ncurses
  5. installing ./cursesw.h in /home/wlf/ncurses/include/ncurses
  6. installing ./cursslk.h in /home/wlf/ncurses/include/ncurses
  7. installing etip.h in /home/wlf/ncurses/include/ncurses
  8. make[1]: Leaving directory `/home/wlf/ncurses-5.9/c++'
复制代码
3.下载 MySQL

打开官方下载地址:https://downloads.MySQL.com/archives/community/ 或者 https://dev.MySQL.com/downloads/MySQL/,根据自己对应是系统,以及版本进行选择,这里演示的是Linux系统的安装 MySQL 8.0.20(本文章是:GNU/Linux 的 x86_64 位操作系统)。

4.上传安装包并解压

  1. mkdir /usr/local/mysql
复制代码
  1. tar -xvf mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar
复制代码
5.进行安装

千万注意:在安装 MySQL 时一定要按照顺序安装。否则会安装失败。
安装顺序:
安装命令语法如下:
  1. rpm -ivh mysql-xxx.rpm --nodeps
复制代码

  1. rpm -ivh mysql-community-common-8.0.20-1.el7.x86_64.rpm --nodeps
复制代码
警告:MySQL-community-common-8.0.20-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
1:MySQL-community-common-8.0.20-1.e################################# [100%]

  1. rpm -ivh mysql-community-test-8.0.20-1.el7.x86_64.rpm --force --nodeps
复制代码
警告:mysql-community-test-8.0.20-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
1:mysql-community-test-8.0.20-1.el7################################# [100%]

  1. rpm -ivh mysql-community-libs-8.0.20-1.el7.x86_64.rpm --force --nodeps
复制代码
警告:mysql-community-libs-8.0.20-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
1:mysql-community-libs-8.0.20-1.el7################################# [100%]

  1. rpm -ivh mysql-community-client-8.0.20-1.el7.x86_64.rpm --force --nodeps
复制代码
警告:mysql-community-client-8.0.20-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
1:mysql-community-client-8.0.20-1.e################################# [100%]

  1. rpm -ivh mysql-community-server-8.0.20-1.el7.x86_64.rpm --force --nodeps
复制代码
警告:mysql-community-server-8.0.20-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
1:mysql-community-server-8.0.20-1.e################################# [100%]

  1. rpm -ivh mysql-community-devel-8.0.20-1.el7.x86_64.rpm --force --nodeps
复制代码
警告:mysql-community-devel-8.0.20-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
1:mysql-community-devel-8.0.20-1.el################################# [100%]
安装时可能出现的问题:
  1. [root@xxxxxx MySQL]# rpm -ivh MySQL-community-test-8.0.20-1.el7.x86_64.rpm --nodeps
  2. 警告:MySQL-community-test-8.0.20-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
  3. 准备中...                          ################################# [100%]
  4. file /usr/bin/mysqld_safe from install of MySQL-community-test-8.0.20-1.el7.x86_64 conflicts with file from package mariadb-server-1:5.5.60-1.el7_5.x86_64
  5. ​        file /usr/bin/MySQLtest from install of ......
  6. ​        ......
复制代码
错误说明:mysql-community-test-8.0.20-1.el7.x86_64安装的文件/usr/bin/mysql_safe与软件包 mariab-server-1:5.5.60-1.el7_5.x 中的文件冲突
问题原因:我们安装的 MySQL 和 mariab-server 发生了冲突。
解决方式:我选择的是方式一
6.启动和停止 MySQL

  1. service mysqld start
  2. # 或者
  3. systemctl start mysqld
复制代码
  1. service mysqld status
  2. # 或者
  3. systemctl status mysqld
复制代码


说明:Active: active (running) "活动(正在运行)的",Main PID: 39490(mysqld):表示 MySQL 占用的进程id。

说明:Active: inactive (dead) "不活动(死)的",Main PID: 39490(mysqld):表示 MySQL 占用的进程id。

  1. ps -ef|grep mysqld
复制代码

  1. lsof -i:3306
复制代码

  1. service mysqld stop
  2. # 或者
  3. systemctl stop mysqld
复制代码
7.登录 MySQL 并修改密码

  1. more /var/log/mysqld.log | grep "A temporary password"
复制代码

  1. mysql -uroot -p
复制代码

登录成功!
说明:mysql 8.0 的默认密码策略要求是比较严苛的,所以这里需要修改 "密码策略"。如果不修改的话,密码设置的过于简单的话,会出现错误 错误1819(HY000)密码不符合当前策略要求 的错误。
  1. # 修改密码复杂级别
  2. set global validate_password.policy=0;
复制代码
  1. # 修改密码长度
  2. set global validate_password.length=1;
复制代码
注意:以上两个系统变量 8.0 后做了变动,变量名不同了。(validate_password_policy 和 validate_password.policy )

  1. alter user 'root'@'localhost' identified with mysql_native_password by 'supconit-mysql';
复制代码
扩展 - 常见修改用户信息的方式:
  1. set password for 'root'@'localhost' = 'supconit-mysql';
复制代码
  1. alter user user() identified by 'supconit-mysql';
复制代码
  1. update mysql.user set host = '%' where user = 'root' and host = 'localhost';
复制代码
注意:使用 DML 语句修改用户密码,必须执行 "刷新权限" 命令也能生效。
  1. flush privileges;
复制代码

navicat下载:链接:https://pan.baidu.com/s/1aknIUwy2L1Ws2uYL88COng  提取码:og7l

特别注意:在使用远程工具远程登录时连接不上。这时就有可能是服务器的防火墙没有关闭导致的!

  1. service firewalld stop
  2. # 或者
  3. systemctl stop firewalld
复制代码
查看服务器的防火墙状态命令:
  1. service firewalld status
  2. # 或者
  3. systemctl status firewalld
复制代码

说明:Active: active (running) "活动(正在运行)的"。

说明:Active: inactive (dead) "不活动(死)的"。
扩展 - 开启防火墙的命令:
  1. service firewalld start
  2. # 或者
  3. systemctl start firewalld
复制代码


肉还是别人家的香 - MySQL rpm 文件安装网上参考资料:https://blog.csdn.net/helpluozhao123/article/details/127217512

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4