MySQL8.0安装笔记

这个属于个人类的笔记,不过希望能帮助到不爱看官网文档的你

最近dalao叫我弄数据库读写分离的准备工作,要求使用MySQL8.0

没在docker上使用由于本人根据官方文档把一些文件夹挂载到宿主环境 

"-v /usr/local/docker/mysql/conf:/etc/mysql/conf.d  -v /usr/local/docker/mysql/data:/var/lib/mysql "

但是在宿主环境中的/usr/local/docker/mysql/conf没有文件,目前不清楚怎么去配置my.cnf,所以暂时不使用docker配置了

本文也仅在Centos7进行


回归主题:

虚拟机系统:Centos 7

MySQL版本:mysql  Ver 8.0.11 for Linux on x86_64


一、MySQL的安装

先下载mysql安装包

    mkdir /usr/local/tmp  创建一个临时目录(记得顺便cd到这个目录)

    wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm


开始安装下载好的RPM包

    sudo yum localinstall ./mysql80-community-release-el7-1.noarch.rpm 


看看刚才安装的有没有问题

     yum repolist enabled | grep "mysql.*-community.*" 

     result>

        mysql-connectors-community/x86_64 MySQL Connectors Community 

        mysql-tools-community/x86_64      MySQL Tools Community  

        mysql80-community/x86_64          MySQL 8.0 Community Server  


选择一个MySQL版本

引用官方文档部分内容:

    

使用MySQL Yum存储库时,默认选择最新的GA系列(当前为MySQL 5.7)进行安装。如果这是你想要的,你可以跳到下一步, 安装MySQL

在MySQL Yum存储库中,不同版本的MySQL社区服务器系列托管在不同的子库中。最新的GA系列(目前MySQL 5.7)的子库是默认启用的,其他所有系列的子库(例如MySQL 8.0系列)默认是禁用的。使用此命令查看MySQL Yum存储库中的所有子存储库,并查看其中哪些被启用或禁用(对于启用了dnf的系统,dnf替换该命令中的yum):

shell> yum repolist all | grep mysql

除了使用yum-config-manager或 dnf config-manager命令之外,您还可以通过手动编辑/etc/yum.repos.d/mysql-community.repo 文件来选择发行版系列 这是该文件中版本系列的子版本库的典型条目:

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

找到要配置的子存储库的条目,然后编辑该enabled选项。指定 enabled=0禁用子库,或 enabled=1启用子库。例如,要安装MySQL 8.0,请确保您拥有 enabled=0MySQL 5.7的上述子版本库条目,并且具有enabled=18.0系列的条目:

# Enable to use MySQL 8.0
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql


 看到这里我们要--> 修改配置文件关闭MySQL5.7

    vi /etc/yum.repos.d/mysql-community.repo

        [mysql57-community]
        name=MySQL 5.7 Community Server
        baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
        enabled=0
        gpgcheck=1
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql


        [mysql80-community]
        name=MySQL 8.0 Community Server
        baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
        enabled=1
        gpgcheck=1
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

安装MySQL 

    sudo yum install mysql-community-server


运行MySQL服务

     sudo service mysqld start


获取root密码

     sudo grep 'temporary password' /var/log/mysqld.log


改个root密码

     ALTER USER 'root'@'localhost' IDENTIFIED BY 'your password';

     这个密码要求最少一个大写字母or小写字母,还有至少一个特殊符号


授权远程登录

mysql> create user 'root'@'%' IDENTIFIED BY 'root';
Query OK, 0 rows affected (0.08 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
Query OK, 0 rows affected (0.10 sec)
这里要提醒一下,以前我们是

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

但是用这个会报错!

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY "root"' at line 1

0.0 神奇的是我去搜索这个问题好像没人遇到,嘛...记录先

后面我在官网那些找  https://dev.mysql.com/doc/refman/8.0/en/show-grants.html

里面说了要先create账号,然后再授权给这个账号,但是不用再IDENTIFIED BY 'root' WITH GRANT OPTION


好了,启动navicat连接咯

Can not connect to MySQL Server 就出来了

这个问题和以前一样,百度有很多解决办法,这里不累述

这里你知道是由于3306端口没开放导致这个问题,百度“centos 开放3306”就能很快定位

虽然你拿navicat报的问题也能很快找到答案,但是答案不一定是你想要的,例如我给你的是在ubuntu怎么开放3306端口


开放了3306后还是会遇到 ERROR 2059

出现这个原因是

1.mysql8 之前的版本中加密规则是mysql_native_password,

2.mysql8之后,加密规则是caching_sha2_password,

解决问题方法有两种

1.一种是升级navicat驱动

2.一种是把mysql用户登录密码加密规则还原成mysql_native_password.

这里自行百度“mysql 2059”就有答案了,如果你是按照我这么写的注意'root'@'localhost'改成'root'@'%'





你可能感兴趣的:(MySQL8.0安装笔记)