zoukankan      html  css  js  c++  java
  • 【mysql】centos7下安装mysql8.0.16(rpm方式)

    一、下载

    地址:https://downloads.mysql.com/archives/community/

    选择如下:

    二、安装

     将下载后的rpm包上传到虚拟机/服务器上,我这里是放在了/usr/local/mysql/下,如果没有mysql文件夹新建一个即可。

    1. 解压.tar文件

    tar -xf mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar

    2. 开始安装如下四个rpm包,执行命令如下,注意要按照顺序执行:

    (1)rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm

    (2)rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm

    (3)rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm

    (4)rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm

    注意:这里我在执行到第二个命令的时候,报错了,报错信息如下:

    网上搜索处理办法如下,没有报错此步骤可以省略。

    执行命令:yum remove mysql-libs 作用是清除之前安装过的依赖。

    执行结束后,继续执行上面命令没有遇到任何问题。

    三、启动与修改密码

    1. 启动mysql

    执行启动命令:systemctl start mysqld

    启动成功后,查看启动状态:systemctl status mysqld

    2. 查看临时密码

    执行命令:cat /var/log/mysqld.log | grep "temporary password"

    红框内的即为临时密码

    当然也可以使用跳过登陆密码的方式访问mysql,具体方法参考下面

    3. 使用临时密码登陆

    命令如下:mysql -uroot -p 之后回车,输入临时密码再回车,即可登陆。

    4. 跳过密码登陆方式:

    (1)首先编辑my.cnf文件:命令如下:vi /etc/my.cnf

    (2)在my.cnf文件中添加skip-grant-tables,保存退出。

    (3)由于修改了配置文件,所以需要重新启动mysql 执行命令:systemctl restart mysqld

    (4)之后重新使用登陆命令 mysql -uroot -p 进行登陆,在输入密码的地方什么都不填写,直接回车即可登陆。

    5. 设置登陆密码:

    执行命令:alter user user() identified by "Aa123456.";  即将密码设置成  Aa123456. 

    这里要注意密码一定要复杂一点,不然会报错

    四、使用navicat连接mysql

    1. 之后,我们来使用navicat来连接mysql,发现无法连接,报错如下:意思是主机不被允许连接,因为虚拟机上安装的mysql没有授权其他主机连接它,需要我们进行授权。

    2. 修改权限,让navicat可以连接上mysql

    (1)查看所有数据库:show databases;

    (2)使用名称为mysql的数据库:use mysql

    (3)展示mysql数据库中所有的表:show tables;

    (4)查看user表中的数据:select user,host from user;

    可以看到root用户,只能本地连接,需要我们对其进行修改。

    (5)修改成任何远程主机都可以访问数据库:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

    但是我这里报错了,没有报错的伙伴可以跳过:

    原因是:当前user表中没有root - %记录; 可以更新root - localhost 为 root - %

    修改命令:update user set host = '%' where user = 'root' and host='localhost';

    修改完成后需要刷新:FLUSH  PRIVILEGES;

    修改完成后重新访问,发现再一次报错,结果如下:

    这里搜到的原因是:

    mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 

    解决办法有两种:

    (1)把mysql用户登录密码加密规则还原成mysql_native_password. 

    (2)升级navicat驱动。

    这里采用第一种方式:

    命令如下:alter user 'root'@'%' identified with mysql_native_password by 'Aa123456.'; 之后刷新FLUSH  PRIVILEGES;

    刷新后,重新访问,发现已经可以访问了。成功!!

    参考:

    1. https://blog.csdn.net/ypp91zr/article/details/84801204

    2. https://blog.51cto.com/kangxi/2439808

    3. https://blog.csdn.net/qq_38366063/article/details/100736999

    4. https://www.cnblogs.com/nhdlb/p/13846034.html

    5. https://blog.csdn.net/mxskymx/article/details/88765072

    6. https://blog.csdn.net/seventopalsy/article/details/80195246

  • 相关阅读:
    几个可以通过curl查询公网IP的站点
    CentOS安装 netdata 实时监视 Linux 系统性能
    Linux用ifconfig设置IP、掩码、网关
    Linux添加用户(user)到用户组(group)
    使用密码登陆Amazon EC2
    ulimit 命令详解
    linux命令行光标移动技巧
    阿里云epel源
    用scp实现多服务器文件分发
    2019年春季第二周作业
  • 原文地址:https://www.cnblogs.com/flyinghome/p/14350031.html
Copyright © 2011-2022 走看看