欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

centOS7安装mysql8.0完美教程!!只要按照步骤,无脑操作,一次成功!

程序员文章站 2023-11-09 17:53:16
查看防火墙systemctl status firewalld重启防火墙systemctl start firewalld 1、mysql 首先关闭防火墙 systemctl stop firewalld 1.1 检查系统是否已经安装过mysql rpm -qa|grep mariadb 如果查询到 ......

查看防火墙
systemctl status firewalld
重启防火墙
systemctl start firewalld 

1、mysql
  首先关闭防火墙
    systemctl stop firewalld

  1.1 检查系统是否已经安装过mysql
    rpm -qa|grep mariadb
    如果查询到结果,证明已经安装过,必须先卸载

  1.2 卸载mariadb
    rpm -e --nodeps mariadb-libs

  1.3 由于mysql会产生临时文件存到/tmp文件夹中,如果使用非root管理员可能没有权限,会报错
    给tmp文件夹设置所有权限
    chmod -r 777 /tmp

  1.4 安装mysql客户端+服务端【需要先从官网下载这些,然后传输到opt文件后再执行安装】
    rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm
    rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm

  1.5 阿里云安装mysql-community-server-8.0.18-1.el7.x86_64.rpm报错解决办法

    报错如下:

      [root@localhost upload]# rpm -ivh mysql-server-5.5.25a-1.rhel5.x86_64.rpm
      error: failed dependencies:
      libaio.so.1()(64bit) is needed by mysql-server-5.5.25a-1.rhel5.x86_64
      libaio.so.1(libaio_0.1)(64bit) is needed by mysql-server-5.5.25a-1.rhel5.x86_64
      libaio.so.1(libaio_0.4)(64bit) is needed by mysql-server-5.5.25a-1.rhel5.x86_64

    解决办法:

      网站百度了很多个文章,都不行,后来发现有一篇文章写的方法可以,命令如下:
        yum install libaio
      这样就ok了,就可以继续安装mysql了。
      参考
      http://www.blogjava.net/amigoxie/archive/2013/02/22/395605.html


2、mysql配置
  2.1使用mysql之前,需要启动mysql服务:
    systemctl start mysqld

  2.2获取默认密码
    grep "a temporary password is generated for root@localhost" /var/log/mysqld.log

  2.3登录
    mysql -u root -p回车     然后输入密码 

  2.4修改密码(允许设置成简单密码)
     set global validate_password.policy=0;
     set global validate_password.length=1;
     alter user "root"@"localhost" identified by "1234"; // 新密码为1234
  2.5退出
    exit;
  2.6用新密码登录
    mysql -u root -p 回车
    输入密码 回车

  2.7 远程连接mysql的权限
    选中数据库
      use mysql;
    查看所有用户
      select user,authentication_string,host from user;
    默认都是localhost
      update user set host = '%' where user = 'root';
    更改加密规则【目的是允许使用简单密码】
      update user set plugin='mysql_native_password' where user ='root';
    刷新
      flush privileges;


  测试外网连接mysql服务器
  (如果外网连接失败的话,先按照【重置密码】执行一遍,再执行【修改密码语句,并且需要替换语句内容】,
  只是alter user "root"@"localhost" identified by "1234";
  要替换成alter user "root"@"%" identified by "1234";)

3、重置密码
  3.1开启免密码登陆 修改my.cnf文件 默认在/etc/my.cnf。
     vim /etc/my.cnf
  在【mysqld】模块下面添加:skip-grant-tables 保存退出。

  3.2重启服务,使配置生效

    systemctl restart mysqld

  3.3登陆
    mysql -u root -p //不输入密码直接敲回车键

  3.4选择数据库
    use mysql把密码置空(因为免密登陆时不能直接修改密码) 
     update user set authentication_string = '' where user = 'root';
  3.5退出
    exit;
  3.6把/etc/my.cnf免密删掉。
  3.7重启服务
    systemctl restart mysqld
   3.8登陆
    mysql -u root -p //直接敲回车键,因为刚刚置空密码了。

   3.9和上面修改密码的步骤一样,重复一遍就好了~ 哈哈!
     set global validate_password.policy=0;
     set global validate_password.length=1;
    alter user "root"@"%" identified by "1234";


开启防火墙(允许特定端口号通过)
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload