centos7.X安装mysql8.0.21(离线安装)

centos7.X安装mysql8.0.21tar包

因为公司内网服务器没办法连接外网,不能使用yum源安装mysql,所以只能自己去官网下载tar.xz包自行安装;安装过程中存在很多坑,分享给大家做参考

  • 准备压缩包

官网下载mysql8.0.21的压缩包。
下载地址:
https://dev.mysql.com/downloads/mysql/
在这里插入图片描述
选择Linux-generic,按照自己的需求选择对应的版本,下载压缩包;通过ssh工具上传到服务器上。

- 建议工具包都上传到自己指定好的目录,规范操作,比如 /local/tools下
  • 检查之前是否有安装mysql

    • 这里有个坑一定要注意,通常我们会使用
      $  rpm -qa | grep -i mysql
      
      这条命令来查找本机上是否安装mysql,但是这条命令只对rpm安装方式有效,所以以下分两种情况来分析服务器是否安装过mysql
  1. rpm方式安装的MySQL卸载
    首先检查是否安装MySQL

    $ rpm -qa |grep -i mysql
    

    在这里插入图片描述
    以上是安装的所有MySQL的服务,需要全部卸载

    	$ yum remove mysql-community-common-5.7.20-1.el7.x86_64
    	$ yum remove mysql-community-client-5.7.20-1.el7.x86_64
    	$ yum remove mysql57-community-release-el7-11.noarch
    	$ yum remove mysql-community-libs-5.7.20-1.el7.x86_64
    	$ yum removemysql-community-server-5.7.20-1.el7.x86_64
    

    再次使用命令查找是否卸载完全

    $ rpm -qa |grep -i mysql
    

    查找是否还有mysql文件残留

    	$ whereis mysql
    

    得到结果在这里插入图片描述
    删除以上文件及文件夹

    $ rm /usr/bin/mysql*
    $ rm -rf /usr/local/mysql
    

    再查找是否有文件剩余,如果有,删除即可

     $ find / -name mysql
    

    删除MySQL的配置文件

     $ rm -rf /etc/my.cnf
    

    删除以前MySQL产生的日志

     $ rm /var/log/mysql*
    
  2. 卸载tar包安装的MySQL
    rpm命令无法查找出MySQL,可以通过检查MySQL的状态命令查看是否安装MySQL

    $ service mysql status
    

    如果正在运行需要停止运行

    $ service mysql stop
    

    如果有mysql服务,使用以上查找mysql文件命令删除MySQL相关文件即可

    $ rpm -qa |grep -i mysql
    

    查找是否还有mysql文件残留

    $ whereis mysql
    

    得到结果在这里插入图片描述
    删除以上文件及文件夹

    $ rm /usr/bin/mysql*
    $ rm -rf /usr/local/mysql
    

    再查找是否有文件剩余,如果有,删除即可

    $ find / -name mysql
    

    删除MySQL的配置文件

     $ rm -rf /etc/my.cnf
    

    删除以前MySQL产生的日志

     $ rm /var/log/mysql*
    

安装MySQL

  • 解压文件
    我们上传的是tar.xz包,所以使用以下命令进行解压,将MySQL解压到/usr/local中

    $ sudo tar -xvf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
    
  • 将文件夹更换名称

    sudo mv /usr/local/mysql-8.0.21-linux-glibc2.12-x86_64/ /usr/local/mysql
    
  • 检查mysql组和用户是否存在,如无创建(非必须,用系统当前用户也可)

    $ cat /etc/group | grep mysql
    $ cat /etc/passwd | grep mysql
    
  • 创建mysql用户组

    $ groupadd mysql
    $ useradd -g mysql mysql
    
  • 进入MySQL安装目录中创建data目录

    $ sudo mkdir /usr/local/mysql/data
    
  • 给文件夹赋予操作权限

    $ sudo chmod -R 777 /usr/local/mysql
    $ sudo chmod -R 777 /usr/local/mysql/data/
    
  • 给用户赋予操作权限

    $ sudo chown -R kss:kss /usr/local/mysql/
    

    这里的kss:kss分别是自己的用户名和用户组名,需要替换成自己的

  • 创建MySQL配置文件

    $ sudo vi /etc/my.cnf
    

配置文件内容如下

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8

[mysqld]

skip-name-resolve

#设置3306端口

port = 3306

# 设置mysql的安装目录

basedir=/usr/local/mysql

# 设置mysql数据库的数据的存放目录

datadir=/usr/local/mysql/data

# 允许最大连接数

max_connections=200

# 服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

lower_case_table_names=1

max_allowed_packet=16M
  • 进入mysql启动目录下

    $ cd /usr/local/mysql/bin
    

    初始化MySQL数据库,这里记得加上一个忽略表名大小写的参数,否则会给后面带来很多麻烦,mysql8以上的版本只能在初始化之前设置这个参数,后期修改会导致数据库不能运行

     $ ./mysqld --initialize --console --lower-case-table-names=1
    

    此时会给root用户产生一个随机密码,需要记住这个密码,等会儿登录需要

  • 修改config配置,修改SELINUX=disabled

    $ sudo vi /etc/selinux/config
    
  • 创建软连接(实现可直接命令行执行mysql)

    $ sudo ln -s /usr/local/mysql/bin/mysql /usr/bin
    
  • mysql配置开机启动

    拷贝启动文件到/etc/init.d/下并重命名为mysqld

    $ sudo cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
    

    增加执行权限

    $ sudo chmod 777 /etc/init.d/mysqld
    

    检查自启动项列表中没有mysqld

    $ sudo chkconfig --list mysqld
    

    如果没有就添加mysqld

    $ sudo chkconfig --add mysqld
    

    设置开机启动

    $ sudo chkconfig mysqld on
    
  • 启动mysql
    service mysqld start
    在这里插入图片描述

设置mysql参数

  • 创建mysql用户

    • 登录mysql

      $ mysql -u root -p
      
    • 修改root用户密码

      -> set PASSWORD = '自己的密码'
      

      此时mysql是无法通过远程访问连接的,需要修改设置,不建议使用root用户进行远程连接,因此我们最好创建属于自己的用户

    • 创建新用户

      -> create user 'mysql'@'%' IDENTIFIED BY '自己的密码';
      
    • 开启远程访问权限
      命令如下:
      grant privileges on databasename.tablename to ‘username’@‘host’;
      例(给mysql用户操作所有库和表的权限):

      -> grant ALL on *.*  to 'mysql'@'%' with grant option;
      
    • 刷新权限设置

      -> flush privileges;
      
  • 远程登录

    • 远程登录工具连接
      在这里插入图片描述
      结果报错
      在这里插入图片描述
      此时需要修改密码加密规则

    • 修改密码加密规则

      -> alter user  'root'@'localhost' IDENTIFIED by 'password' password expire never; 
      
    • 更新用户的密码

      -> alter user 'root'@'localhost' identified with mysql_native_password by 'password'; 
      -> alter user 'mysql'@'%' IDENTIFIED  with mysql_native_password by 'password'; 
      
    • 刷新权限

      -> flush privileges;
      

      重新使用mysql界面化工具登录已经可以成功登录,centos7.x 安装mysql最新8.0.21版本已经全部完成,希望这个教程对你有用。

  • 12
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值