• CentOS7安装MySQL8


    系统版本: CentOS 7
    MySQL版本: 8.0.20

    一、卸载MariaDB

    在CentOS中默认安装有MariaDB,是MySQL的一个分支,主要由开源社区维护。
    CentOS 7及以上版本已经不再使用MySQL数据库,而是使用MariaDB数据库。
    如果直接安装MySQL,会和MariaDB的文件冲突。
    因此,需要先卸载自带的MariaDB,再安装MySQL。

    1.1查看版本:

    rpm -qa|grep mariadb
    
    
    • 1
    • 2

    1.2卸载

    rpm -e --nodeps 【文件名】
    
    
    • 1
    • 2

    1.3检查是否卸载干净:

    rpm -qa|grep mariadb
    
    
    • 1
    • 2

    注意:1、卸载前要切换root环境,否则提示无权限。2、mariadb可能有两个文件都要卸载
    例如:

    [liangyan@localhost ~]$ rpm -qa|grep mariadb  
    mariadb-devel-5.5.68-1.el7.x86_64
    mariadb-libs-5.5.68-1.el7.x86_64
    [liangyan@localhost ~]$ su root
    密码:
    [root@localhost liangyan]# 
    [root@localhost liangyan]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
    [root@localhost liangyan]# 
    [root@localhost liangyan]# rpm -e --nodeps mariadb-devel-5.5.68-1.el7.x86_64
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    二、安装MySQL

    2.1下载资源包

    2.1.1官网下载资源包

    https://dev.mysql.com/downloads/mysql/
    
    • 1

    2.1.2wget下载

    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
    
    • 1

    2.2解压

    如果后缀是.tar.gz 解压方法

    tar -zxvf 文件名
    
    • 1

    如果后缀是.tar.xz 解压方法

    tar -zxvf 文件名
    
    • 1

    2.3重命名 和建立软连接

    mv 原文件夹名 mysql8.0.20
    ln -s 文件夹名 mysql8.0.20

    2.4添加PATH环境变量

    2.4.1临时添加

    export PATH=$PATH:/data/software/mysql8/bin
    
    • 1

    2.4.2修改配置文件

    centos7配置文件一般在 /etc/profile,使用vi进行修改
    vi常用命令:
    按i 进入insert状态可以进行编辑操作
    按ESC键 跳到命令模式(底部的insert消失,输入下面的命令可进行相应操作),然后:

    :q! 不保存文件,并退出vi

    :wq 保存文件并退出vi

    :w 保存文件但不退出vi

    :w file 将修改另外保存到file中,不退出vi

    :w! 强制保存,不推出vi

    :wq! 强制保存文件,并退出vi
    使用追加语句直接在文件后面编辑
    echo “export PATH=$PATH:/usr/local/mysql/bin">> /etc/profile

    2.4.2.1打开配置文件夹添加环境变量
    vi /etc/profile
    
    • 1

    例如:
    在这里插入图片描述

    2.4.2.2保存退出更新配置文件

    按Esc后,输入:“:wq” 回车
    更新配置文件:

    source /etc/profile
    
    • 1

    三、用户和用户组

    3.1创建用户组和用户

    # 创建一个用户组:mysql
    groupadd group_name
    # 创建一个系统用户:mysql,指定用户组为mysql
    useradd -r -g name group_name
    
    • 1
    • 2
    • 3
    • 4

    创建用户组:groupadd
    创建用户:useradd
    -r:创建系统用户
    -g:指定用户组

    3.2数据目录

    3.2.1创建目录

    mkdir -p /data/software/mysql8.0.20/datas
    
    • 1

    3.2.2赋予权限

    # 更改属主和数组
    chown -R group_name:name /data/software/mysql8.0.20/datas
    # 更改模式
    chmod -R 750 /data/software/mysql8.0.20/datas
    
    • 1
    • 2
    • 3
    • 4

    四、初始化

    4.1配置参数

    在/data/software/mysql8.0.20/下,创建my.cnf配置文件,用于初始化MySQL数据库

    [mysql]
    # 默认字符集
    default-character-set=utf8mb4
    [client]
    port       = 3306
    socket     = /tmp/mysql.sock
    
    [mysqld]
    port       = 3306
    server-id  = 3306
    user       = mysql
    socket     = /tmp/mysql.sock
    # 安装目录
    basedir    = /data/software/mysql8.0.20
    # 数据存放目录
    datadir    = /data/software/mysql8.0.20/datas/mysql
    log-bin    = /data/software/mysql8.0.20/datas/mysql/mysql-bin
    innodb_data_home_dir      =/data/software/mysql8.0.20/datas/mysql
    innodb_log_group_home_dir =/data/software/mysql8.0.20/datas/mysql
    #日志及进程数据的存放目录
    log-error =/data/software/mysql8.0.20/datas/mysql/mysql.log
    pid-file  =/data/software/mysql8.0.20/datas/mysql/mysql.pid
    # 服务端使用的字符集默认为8比特编码
    character-set-server=utf8mb4
    lower_case_table_names=1
    autocommit =1
    # 创建新表时将使用的默认存储引擎
    default_storage_engine = InnoDB
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    4.2初始化

    mysqld --defaults-file=/data/software/mysql8.0.20/my.cnf --basedir=/home/liangyan/mysql8.0.20/ --datadir=/data/software/mysql8.0.20/datas --user=mysql --initialize-insecure
    
    
    • 1
    • 2

    参数(重要)

    defaults-file:指定配置文件(要放在–initialize 前面)
    user: 指定用户
    basedir:指定安装目录
    datadir:指定初始化数据目录
    intialize-insecure:初始化无密码

    五,启动mysql

    查看 MySQL的 bin路径下,是否包含mysqld_safe,用于后台安全启动MySQL
    在这里插入图片描述

    5.1启动服务

    # 完整命令
    /data/software/mysql8/bin/mysqld_safe --defaults-file=/data/software/mysql8/my.cnf &
    # 添加PATH变量后的命令(省略bin目录的路径)
    mysqld_safe --defaults-file=/data/software/mysql/my.cnf &
    # 查看是否启动
    ps -ef|grep mysql
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    5.2登录和修改密码

    # 无密码登录方式
     # 找到配置文件,一般在:/etc/my.cnf
     # 用vi/vim把  skip-grant-tables  添加到配置文件里面 放在[mysqld]下面就可以了  #可以跳过密码登录、
     # 重启服务 :
     systemctl restart mysql
    # 有密码登录方式(初始的随机密码在/data/mysql8_data/mysql/mysql.log下)
    mysql -u root -p
    password:随机密码
    #重置密码 只需要填写新密码即可
    update mysql.user set password=password('新密码')  where user='root' and host='localhost'; 
    # 刷新权限
    FLUSH PRIVILEGES;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    注意:登录时可能遇到Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ ,有时某些版本mysql.sock不在tmp文件夹下,而在 /var/lib/mysql/mysql.sock 下,可以创建软连接解决:ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

    5.3设置远程登陆

    先登录到mysql,在执行

    mysql> use mysql
    mysql> update user set user.Host='%'where user.User='root';
    mysql> flush privileges;
    mysql> quit
    
    • 1
    • 2
    • 3
    • 4

    六 启动和开机自启动:

    安装mysql-server

    yum install -y mysql-server
    
    • 1

    启动服务

    systemctl start mysqld.service
    
    • 1

    添加到开机启动

    systemctl enable mysqld.service
    
    • 1

    关闭服务

    systemctl stop mysqld.service
    
    • 1

    七 卸载mysql

    检查mysql service

    systemctl status mysqld.service
    
    • 1

    关闭mysql服务

    systemctl stop mysqld.service
    
    • 1

    查看是否安装过MySQL

    rpm -qa | grep -i mysql
    
    • 1

    务必卸载干净,反复使用rpm -qa | grep -i mysql查看是否有残留。
    查看mysql相关文件

    find / -name mysql
    
    • 1

    删除上述命令查询出的文件或者文件夹

    rm -rf xxx/xxx/xxx
    
    • 1

    -r是递归的删除参数表中的目录及其子目录。 目录将被清空并且删除。 当删除目录包含的具有写保护的文件时用户通常是被提示的。f是不提示用户,删除目录下的所有文件。请注意检查路径,输成别的目录就悲剧了。
    删除my.cnf

    rm -rf /etc/my.cnf
    
    • 1
  • 相关阅读:
    [山东科技大学OJ]2414 Problem G: 倒排字符串
    当大语言模型遇到AI绘画-google gemma与stable diffusion webui融合方法-矿卡40hx的AI一体机
    SQL Server关于AlwaysOn的理解-读写分离的误区(一)
    Python 页面解析:Beautiful Soup库的使用
    【NLP】AI相关比赛汇总(2022)
    分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测
    适用于Windows平台的录屏软件Captura简介
    Redis——Java客户端配置
    Using LDAP to authenticate users
    VSCode相对问题
  • 原文地址:https://blog.csdn.net/wuwei_201/article/details/126114646