Centos7安装mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar

wylc123 1年前 ⋅ 2519 阅读

1、前言

  当前MySQL最新版本:8.0.13 (听说比5.7快2倍)

  官方之前表示:MySQL 8.0 正式版 8.0.11 已发布,MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能!

  开源中国介绍文档:MySQL 8.0 正式版 8.0.11 发布:比 MySQL 5.7 快 2 倍

2、获取MySQL最新版 rpm包 集合 的下载地址(获取最新版MySQL下载地址方法)

    MySQL下载页面:https://dev.mysql.com/downloads/mysql/8.0.html

我是CentOS系统 所以 我选择了 Red Hat。

第一个为一个 tar归档包,里面是 后面所有 rpm 的打包(仔细看后面都是rpm 结尾的)

    点击右边Download

这就是最新版 MySQL资源链接 :https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar

yum or rpm?

yum安装方式很方便,但是下载mysql的时候从官网下载,速度较慢。
rpm安装方式可以从国内镜像下载mysql的rpm包,比较快。rpm也适合离线安装。

环境说明

  • 操作系统:Centos7.5 (CentOS-7-x86_64-DVD-1804.iso)
  • mysql:mysql8.0.13
  • 卸载系统自带的mariadb-lib

  • 查看mariadb版本
    rpm -qa|grep mariadb
    mariadb-libs-5.5.56-2.el7.x86_64
  • 卸载mariadb
    rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps

查看/安装依赖环境

yum install -y openssl-devel.x86_64 openssl.x86_64 
yum install -y libaio.x86_64 libaio-devel.x86_64 
yum install -y perl.x86_64 perl-devel.x86_64 
yum install -y perl-JSON.noarch 
yum install -y autoconf 
yum install -y wget
yum install -y net-tools

关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

禁用selinux

vi /etc/selinux/config
SELINUX=enforcing改为SELINUX=disabled
reboot 重启机器

从网易镜像下载mysql安装包集合

  • 下载完整安装包并解压
wget https://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar
tar -xvf mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar
  • 下载必要安装包(二选一)
wget https://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-community-common-8.0.13-1.el7.x86_64.rpm
wget https://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-community-libs-8.0.13-1.el7.x86_64.rpm
wget https://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-community-client-8.0.13-1.el7.x86_64.rpm
wget https://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-community-server-8.0.13-1.el7.x86_64.rpm

按顺序安装

  • 必要安装(注意顺序)
  • 安装common
  • 安装lib 依赖于common,确保已经卸载mariadb
  • 依赖于libs
  • 依赖于client、common
rpm -ivh mysql-community-common-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.13-1.el7.x86_64.rpm
  • 非必要安装(注意顺序)
rpm -ivh mysql-community-libs-compat-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-test-8.0.13-1.el7.x86_64.rpm

初始化数据库

mysqld --initialize --lower-case-table-names=1 --console

目录授权,否则启动失败

chown -R mysql:mysql /var/lib/mysql/

启动服务

systemctl start mysqld

加密

mysql_secure_installation

这里会提示输入密码,刚安装好的mysql密码可以这样查询:

cat /var/log/mysqld.log | grep password #查看初始密码

开启远程访问权限:

开启远程访问权限步骤:
 
1).  
mysql -u root -p
use mysql;
 
 
 
2).   select host, user, authentication_string, plugin from user;
 
 
 
如上图,发现root的host是localhost,不是%, 那我们就加个host是%的root账号:
 
命令: CREATE USER 'root'@'%' IDENTIFIED BY 'root';#可能会跟密码规则冲突,建议有下面方式创建
也可使用:
Create USER 'root'@'%' IDENTIFIED BY 'Wylc12345^';
创建一个密码为Wylc12345^的host是%的root账号
 
再重新查一下用户
命令: select host, user, authentication_string, plugin from user;
 
 
 
上面步骤成功后运行如下代码: GRANT ALL ON *.* TO 'root'@'%';
 
 
这样就成功了
 
用navicat连接mysql还是会报错:
 
 
 
原因是mysql8的加密方式规则不一样,是caching_sha2_password
 
 
把加密方式改成mysql_native_password就行了:
ALTER USER '[用户名]'@'%' IDENTIFIED WITH mysql_native_password BY '[密码]';
 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
 
加密方式已经修改完成 mysql_native_password:
 
 
 
 
如果还不成功,可能Linux没有开放3306端口
 
操作步骤:
1、登陆到linux系统
2、输入防火墙开放端口命令:firewall-cmd --zone=public --add-port=3306/tcp --permanent
3、刷新防火墙:firewall-cmd --reload
* 注意:--add-port=后面接需要开放的端口
 
 

其他

其他操作和yum安装方式一样,不再重复。

、开始安装

    1、当中会遇到的问题

      1、mysql-community-libs .... 这两个包安装不上。

        原因:我们在Linux系统中,如果要使用关系型数据库的话,基本都是用的mysql。

        而且以往7以下版本的centos系统都是默认的集成有mysql。

        然而对于现在最新的centos7系统来说,已经不支持mysql数据库,它默认内部集成了mariaDB。

        如果我们想要使用 mysql 的话,就要先将原来的mariaDB卸载掉,不然会引起冲突。

        解决方案:卸载maridb (rpm 不会卸载软件的 自行百度)

        查看安装的 mariaDB:rpm -qa | grep mariadb

        卸载:rpm -e ***(*** 为软件名)

        如果不能卸载则即可:rpm -e --nodeps ***(*** 为软件名)

      2、缺少依赖包 libaio

        libaio.so.1()(64bit) is needed by MySQL-server 问题

        直接实用yum包管理工具安装即可:yum install libaio

     2、使用 rpm -vih XXXXXX(XXXXXX 为 rpm包全名)

      按照依赖顺序依次安装(能安装的安装就行,像test这个不方便安装就算了。)

      mysql-community-common-8.0.13-1.el7.x86_64

      mysql-community-libs-8.0.13-1.el7.x86_64

      mysql-community-libs-compat-8.0.13-1.el7.x86_64

      mysql-community-client-8.0.13-1.el7.x86_64

      mysql-community-embedded-compat-8.0.13-1.el7.x86_64

      mysql-community-server-8.0.13-1.el7.x86_64

   7、启动MySQL服务,并设置root密码

    1、启动mysql服务

      service mysqld restart

    2、初次安装mysql,root账户没有密码。
[root@izuf6 tmp]# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 8.0.13 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
rows in set (0.01 sec)

mysql>

    设置密码:

mysql> set password for 'root'@'localhost' =password('password');
Query OK, 0 rows affected (0.00 sec)

mysql> 

    不需要重启数据库即可生效。

    3、使用样例

  6、MySQL一些骚炒作

-- 登录sys数据库
mysql -u root -proot sys

-- 查看所有的数据库
select database()

-- 查看数据库
show databases;

-- 模糊查询包含y的数据库
show databases like '%y%';

-- 查看表
show tables;

--模糊查询包含user的表
show tables like '%user%';

-- 查看列, 查看user表信息
desc user;

-- 查看username用户被赋予的权限
show grants for username;

Mysql连接错误:Lost connection to Mysql server at 'waiting for initial communication packet'

在my.cnf配置文件中的[mysqld]区域添加skip-name-resolve,即跳过mysql连接的DNS反向解析功能,这样能很好地提高mysql性能。

centos中my.cnf文件在/etc/目录下。

另外:
如果在my.cnf文件中配置了bind-address地址绑定的地址(说明别的机器远程只能通过这个绑定的本机地址来连接mysql),可以将其注释掉。
例如:
bind-address = 127.0.0.1       //说明只能在本机连接mysql,并且通过-h 127.0.0.1或localhost,在远程是无法连接这个mysql的!
--------------------------------------------------------------------------------------------------------------

my.cnf配置的几个参数:
skip-name-resolve         跳过DNS反向解析过程.(这样就不能使用主机名连接mysql了,只能使用ip连接)
skip-grant-tables           跳过授权表(当mysql登陆密码忘记时的解决办法)
skip-networking             跳过TCP/IP连接
skip-host-cache             禁用主机名缓存;要想清除主机名缓存,执行FLUSH HOSTS语句或执行mysqladmin flush-hosts命令


注意:本文归作者所有,未经作者允许,不得转载

更多内容请访问:IT源点
相关文章推荐

全部评论: 0

    我有话说: