侧边栏壁纸
博主头像
qiql博主等级

水能载舟,亦可赛艇

  • 累计撰写 33 篇文章
  • 累计创建 28 个标签
  • 累计收到 20 条评论

目 录CONTENT

文章目录

Linux 下非 root 安装 MySQL 8.0.12 并使用 Shell 操作数据库

qiql
2023-06-06 / 0 评论 / 0 点赞 / 753 阅读 / 647 字

零 概述

本文将介绍如何以非 root 身份安装运行 MySQL 8.0.12,并使用 Shell 命令操作数据库及将 txt 文件中的数据导入到 MySQL 表中

一 安装包前准备

# 获取安装包
wget https://mirrors.qiql.net/pkgs/mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz

# 解压
tar -xvf mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz

# 重命名【可选】
mv mysql-8.0.12-linux-glibc2.12-x86_64/ mysql-8.0.12

# 进入MySQL目录并创建data目录用于存放数据文件
cd mysql-8.0.12 && mkdir data

在mysql-8.0.12目录下创建配置文件 my.conf 填写以下内容:

[mysqld]
port=3336
basedir=/to/your/path/mysql-8.0.12
datadir=/to/your/path/mysql-8.0.12/data
pid-file=/to/your/path/mysql-8.0.12/mysql.pid
socket=/to/your/path/mysql-8.0.12/mysql.sock
log_error=/to/your/path/mysql-8.0.12/error.log
server-id=100
secure_file_priv=/to/your/path/file  # 此字段定义的是允许mysql从何目录读取数据文件【可选】

二 安装MySQL

  1. 进入MySQL目录:

    cd /to/your/path/mysql-8.0.12
    
  2. 初始化MySQL:

    bin/mysqld \
    --defaults-file=/to/your/path/mysql-8.0.12/my.conf \
    --initialize \
    --user=user \
    --basedir=/to/your/path/mysql-8.0.12\
    --datadir=/to/your/path/mysql-8.0.12/data
    
  3. 启动MySQL:

    bin/mysqld_safe \
    --defaults-file=/to/your/path/mysql-8.0.12/my.conf \
    --user=user &
    
  4. 查看MySQL数据库root账号的初始密码:

    cat error.log | grep root@localhost
    
  5. 登录Mysql:

    bin/mysql -u root -p -S /to/your/path/mysql-8.0.12/mysql.sock
    
  6. 修改密码:

    alter user 'root'@'localhost' identified with mysql_native_password by '123456';
    #建议添加with mysql_native_password参数,此选项可以允许使用shell进行MySQL数据库操作
    
  7. 刷新权限:

    flush privileges;
    
  8. 查看 MySQL 端口:

    show global variables like 'port';
    
  9. 查询外部文件允许导入目录:

    show variables like “secure_file_priv”;
    

三 Shell 命令操作数据库

  1. 通过 Shell 将 txt 文件的数据导入数据库:

    cd /to/your/path/mysql-8.0.12
    
    ./bin/mysqlimport --fields-terminated-by=',' --lines-terminated-by='\n' --ignore-lines=1 --user=root --password=123456 数据库名 --local  /to/your/path/xxx.txt -S /to/your/path/mysql-8.0.12/mysql.sock
    
    # 在此命令中,以逗号为每一列的分隔符,以换行为每一行的分隔符,并忽略掉txt文本中的第一行。
    
  2. 通过 Shell 执行 MySQL 命令(以清空 INFO 数据库的 studnet 表数据为例):

    cd /to/your/path/mysql-8.0.12
    
    ./bin/mysql -h 127.0.0.1 -P 3336 -u root -p'123456' --execute='use INFO;TRUNCATE TABLE student;' --default-character-set=UTF8 -S /to/your/path/mysql-8.0.12/mysql.sock
    
0

评论区