Linux中mysql的安装、远程访问、基础操作、文件导入

news2024/11/18 6:48:59

Linux中mysql的安装、远程访问、基础操作、文件导入

  • cheet card
  • 1. 安装
    • 1. 使用root账号安装mysql
  • 2. 启动mysql并创建root、管理员两个账号
  • 3. 基础操作
    • 3.1 数据库的查看、创建、修改、删除
    • 3.2 mysql的数据类型
    • 3.3 数据表的基本操作
    • 3.4 数据表结构的修改
    • 3.5 表中数据的增、删、改
    • 3.6 表中字段值的约束
  • 4. 远程访问设置
    • 4.1 阿里云、腾讯云开放安全组
    • 4.2 集群mysql防火墙打开
  • 5. windows访问
    • 5.1 登录
    • 5.2 创建临时数据库TEMP
    • 5.3 待导入文件前10行导入TEMP数据库
  • 6. 文件导入
    • 6.1 更改指定的导入文件存放目录
    • 6.2 更改mysql数据库datadir存放目录
    • 6.3 导入文件
  • 参考文件

cheet card

安装启动操作
1.安装mysql命令 :$ sudo apt-get install -y mysql-server
2.查看mysql的版本命令(注意-V是大写,不然会出现如下错误):$ mysql -V
3.启动mysql命令(关闭,重启等只需将start换成stop,restart等即可):$sudo service mysql start
4.登录mysql命令为:$ mysql -u用户名 -p密码
5.连接远程数据库:$ mysql -h <host> -P <port> -u<username> -p<password>

数据库操作
1.查看数据库:> show databases; (注意分号“;”不要落下)
2.新建一个数据库命令:> create database 数据库名称;
   删除一个数据库命令:> drop database 数据库名称;
3.使用某个数据库:> use 数据库名称;

表操作
1.查看表命令:> show tables;
2.建立一个新表:> create table 表名 (字段参数); 或 >create table if not exists 表名(字段参数);
   删除一个旧表:> drop table 表名; 或 >drop table if exists 表名;
3.查看表结构:> desc 表名称; 或 >show columns from 表名称;
4.对表数据的操作:
   增:>insert into 表名称 (字段名1,字段名2,字段名3......) values(字段名1的值,字段名2的值,字段名3的值......);
   删:>delete from 表名称 where 表达式;
   改:>update 表名称 set 字段名=“新值” where 表达式;
   查:>select 字段名1,字段名2,字段名3..... from 表名称;
5.增加字段:>alter table 表名称 add 字段名 数据类型 其它; (其它包括默认初始值的设定等等)
6.删除字段:>alter table 表名称 drop 字段名;

用户相关操作
注:以下命令均需先以root身份登录mysql:mysql -uroot -p
1.添加新用户
(1)创建新用户:> insert into mysql.user(Host,User,Password) values("localhost","user1",password("password1"));
(2)为用户分配权限:
            设置用户可以在本地访问mysql:grant all privileges on *.* to username@localhost identified by "password" ;
            设置用户只能访问指定数据库:grant all privileges on 数据库名.* to username@localhost identified by "password" ;
(3)刷新系统权限表:>flush privileges;
2.查看MySql当前所有的用户:>SELECT DISTINCT User FROM mysql.user;
3.删除用户及其数据字典中包含的数据:>drop user 'xbb'@'localhost';

1. 安装

1. 使用root账号安装mysql

# 下载
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar
# 检查mariaDB是否被覆盖
rpm -qa |grep mariadb
rpm -e --nodeps mariadb-libs

# 解压文件及安装
tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar
rpm -ivh mysql-community-common-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.28-1.el7.x86_64.rpm # libaio缺少,需要安装
		rpm -qa | grep libaio
		yum -y install libaio

2. 启动mysql并创建root、管理员两个账号

## 初始化
mysqld --initialize --console

## 启动mysql
systemctl start mysqld

# 查看root临时密码
cat /var/log/mysqld.log |grep localhost

  在linux界面使用mysql -u root -p,输入root临时密码后进入mysql语句。

# 修改密码
alter user 'root'@'localhost' identified by 'Root_root1'

# 开放 root 账户远程登录
## 1.进入数据库
	use mysql

## 2.修改user表,root账户可在任意IP登录
	update user set host='%' where user='root';  
	update user set host='localhost' where user='root'; # 恢复仅本地连接	

## 3.创建新用户guanliyuan,可在任意IP登录
	create user 'guanliyuan'@'%' identified with mysql_native_password by '!guanliyuaN4';
	
## 4.给用户guanliyuan可访问所有数据库,并拥有与root一样的增删改查权力
	grant all privileges on *.* to 'guanliyuan'@'%' with grant option;

## 5.创建账户张三,仅对所有数据库有select权力,在任意IP可登录
	CREATE USER zhangsan IDENTIFIED BY '!zhangsaN2024';
	SHOW GRANTS FOR zhangsan;
	GRANT SELECT on *.* TO 'zhangsan'@'%' WITH GRANT OPTION;
	FLUSH PRIVILEGES;
	
    # 以下为完整示例
    创建一个使用密码作为认证方式的账号
    CREATE USER 'kalacloud-remote'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
    根据自己的需要,给你用于远程访问的账号赋予权限
    GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'kalacloud-remote'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

3. 基础操作

3.1 数据库的查看、创建、修改、删除

# 创建数据库
create database demo;

# 查看mysql的数据库
show databases;

# 查看数据库demo信息
show create database demo;

# 创建数据库时为其指定字符集,语法如下:
	# mysql常用编码方式有 utf8 utf16 gbk unicode iso latin ascii
create database 数据库名 character set 编码方式;

# 选择使用的数据库
use 数据库名;

# 查看当前正在使用的数据库;
select database();

alter database demo character set gbk
drop database hello

3.2 mysql的数据类型

  二进制、时期时间、字符串、整数类型、小数类型;
  详细可看参考文件MySQL的字段类型,该怎么选?

3.3 数据表的基本操作

# 创建表格
create table 表名(
		字段名 数据类型 [(长度)] [约束条件], 
		字段名 数据类型 [(长度)] [约束条件], 
		字段名 数据类型 [(长度)] [约束条件], 
		.....
);

create table student(
	-> id  int unsigned,
	-> name varchar(10),
	-> age tinyint unsigned,
	-> sex enum('男', '女'),
	-> birthday date,
	-> hobby set('唱歌', '表演', '编程')
	);

# 展示表格式化后结果,更好看
show create table student\G
# 查看表格字段信息
desc/describe student
# 删除表格;
drop table OmicsCNGene_melt;

# 修改数据表名
alter table 旧表名 rename to 新表名

# 修改字段名,注意:新字段的数据类型不能省略!
alter table 表名 change 旧字段名 新字段名 新字段的数据类型;

# 修改字段类型
alter table 表名 modify 字段名 新的数据类型

# 添加字段
alter table 表名 add 新字段名 新字段数据类型 [first|after 已经存在的字段名]

# 修改字段位置
alter table 表名 modify 字段名1 数据类型 [first|after 字段名2]

# 删除字段
alter table 表名 drop 字段名

3.4 数据表结构的修改

  极少用,表一旦建立,最好不要再改变,否则现有程序会被严重影响,尤其是表中已有数据的时候
  一定要在设立之初把表格一次性设置好。
  比如,修改字段名、修改字段类型、添加字段、修改字段位置,具体可见3.3、3.5内容

3.5 表中数据的增、删、改

# 插入数据
insert into 表名 (字段名 字段名, 字段名) values (值, 值, 值, 值, 值)
insert into student values (1, 'zhangsan', 18, '男', '1990-10-08', '唱歌,编程')

insert into 表名 set 字段名=值(字段名=值, ...)
insert into student set id=3, name='lisi', age=19, sex='男'

# 修改记录
update 表名 set 字段名=值[字段名=值, ...] [where 条件表达式]
update student set age=23,sex='女' where name = 'zhangsan'

# 删除记录
delete from 表名 [where 条件表达式]
dalete from student where name = 'zhangsan'

3.6 表中字段值的约束

primary key 主键约束
not null 非空约束
unique  唯一约束
check(条件语句) 检查约束
foreign key(字段名) references 表名(字段名)
default <默认值>  默认值约束

4. 远程访问设置

4.1 阿里云、腾讯云开放安全组

在这里插入图片描述

4.2 集群mysql防火墙打开

# 查看防火墙
systemctl status firewalld
# 查看3306端口状态
firewall-cmd --zone=public --query-port=3306/tcp
# 如果是no,表示关闭,打开3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 防火墙重载
firewall-cmd --reload
# 再次查看3306状态(yes)
firewall-cmd --zone=public --query-port=3306/tcp

5. windows访问

5.1 登录

  如何登录网上有很多教程,如果遇到报错,可针对性搜索。
  某一类报错,可参考DBeaver连接时报错:Public Key Retrieval is not allowed Public Key Retrieval is not allowed

5.2 创建临时数据库TEMP

  利用3.3介绍是知识,创建一个数据库TEMP,刷新后能在windows下看到。

5.3 待导入文件前10行导入TEMP数据库

(1)正常导入,从DDL部分获得正确的表格创建语句;
(2)报错,修改”列“中报错字段的数据类型,右下角保存改变。重新导入测试数据,从DDL部分获得正确的表格创建语句;

6. 文件导入

6.1 更改指定的导入文件存放目录

show variables like 'secure_file_priv';
 
secure-file-priv的值有3种情况:
secure_file_priv=null      -- 默认值为null,限制mysql,禁止导入导出文件
secure_file_priv=""        -- 表示不限制路径,允许mysql 导入导出文件
secure_file_priv="D:/path" -- 指定路径,表示只允许在该路径目录下导入导出文件(这里的路径值可以自己设置)

  使用root账号在/etc/my.conf文件中修改后,重启数据库生效

6.2 更改mysql数据库datadir存放目录

  使用show variables like '%datadir%';,查看目前的存放路径。
  使用root账号在/etc/my.conf文件中修改后,把原路径下的Data文件夹整个复制到目标路径下。重启数据库生效。

6.3 导入文件

(1) sql语句切入到目标database下;
(2) 使用5.3中得到的create语句创建table target;
(3) 使用load data infile导入文件
load data infile '/user_mount/abs_path/Media.csv' into table Media character set utf8 fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\n' IGNORE 1 LINES;

参考文件

(1) CentOS / Linux 安装MySQL(超简单详细)
(2) MySQL数据库SQL语言入门,精讲精练
(3) MySQL基础知识 - 账号和权限管理
(4) MySQL的字段类型,该怎么选?
(5) 最全服务器安装MySQL和远程连接教程(含常见问题解决)
(6) DBeaver连接时报错:Public Key Retrieval is not allowed Public Key Retrieval is not allowed
(7) ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot exec
(8) MySQL数据存储路径如何修改
(9) Linux下mysql导入csv文件
(10) 菜鸟mysql四分钟导入千万级别的数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1516761.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++ 学习】程序内存分布

文章目录 1. C 内存分布的引入 1. C 内存分布的引入 ① 栈又叫堆栈&#xff1a;非静态局部变量/函数参数/返回值等等&#xff0c;栈是向下增长的。 ② 内存映射段&#xff1a;是高效的I/O映射方式&#xff0c;用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存…

射影几何 -- 两视点几何 1

1、 基本矩阵 1.1、 极几何 极平面 (Epipolar Plane) 通过两个摄像机光心的平面称为极平面。两个摄像机光心的连线称为基线&#xff0c;任意两张极平面均 相交于基线&#xff0c;所以极平面的全体构成共基线的平面束。 极线 (Epipolar Line) 极平面与摄像机像平面的交线称…

ELK之使用Filebeat插件收集日志到Logstash

对于Springboot项目接入ELK非常方便&#xff0c;对于非maven&#xff0c;非Spring项目来说就比较复杂&#xff0c;这个时候我们就可以使用Filebeat插件还完成日志的收集发送工作。 Filebeat介绍 Filebeat是用于转发和收集数据的轻量级工具&#xff0c;Filebeat可以监视指定的…

3.1_8 两级页表

文章目录 3.1_8 两级页表&#xff08;一&#xff09;单级页表存在的问题&#xff08;二&#xff09;如何解决单级页表的问题&#xff1f;&#xff08;三&#xff09;两级页表的原理、地址结构&#xff08;四&#xff09;如何实现地址变换&#xff08;五&#xff09;需要注意的几…

【Cookie和Session辨析】

1.cookie 1.1什么是cookie Cookie 是一种在客户端&#xff08;通常是 Web 浏览器&#xff09;和服务器之间传递信息的机制&#xff0c;用于在客户端存储少量的数据。它由服务器发送到客户端浏览器&#xff0c;然后浏览器会将这些数据存储在本地&#xff0c;并在后续的请求中将…

全球首个 AI 软件工程师 Devin它来了!

如果您想每日获取AI最新新闻,欢迎关注文章底部的公众号 Cognition AI 发布 AI 软件工程师 Devin 初创公司 Cognition 近日发布公告,宣布推出全球首个 AI 软件工程师 Devin,并号称会彻底改变人类构建软件的方式。Devin 擅长长期推理能力,可以自主规划和完成软件项目,并在此…

Kotlin:为什么创建类不能被继承

一、为什么创建类不能被继承 class或data class 默认情况下&#xff0c;Kotlin 类是最终&#xff08;final&#xff09;的&#xff1a;它们不能被继承。 示例&#xff1a;data class PsersonBean 反编译data class PsersonBean 生成 public final class PsersonBean 示例&…

智慧路灯杆AI监测应用,让高速出行更安全

高速公路是现代交通出行的重要组成&#xff0c;高速公路上的交通安全也一直是人们关注的焦点。针对更好监测和管理高速公路上的交通状况&#xff0c;可以基于智慧路灯杆打造AI交通监测应用&#xff0c;通过智能感知高速路段的路况、车况、环境状况&#xff0c;实现实时风险感知…

基于SpringBoot的“实验室管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“实验室管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 登录界面 注册界面 实验室界面 设备界面图 消耗…

linux 安装gradle7.4.2环境

1.下载gradle7.4.2工程 百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固&#xff0c;支持教育网加速&#xff0c;支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com/s/1hoNEFkBJPHAgs9ITAEh3Zg?pwdGJ…

Spring Cloud Alibab 入门搭建,包含Nacos中心,注册服务发现服务,Feign请求,GateWay网关,sentinel限流

一、安装Nacos注册中心 1.1查看Nacos官网&#xff0c;安装Nacos服务&#xff0c;下载源码或者安装包 1.2启动服务&#xff0c;默认端口为8848&#xff0c; 二、创建服务注册&发现 2.1使用脚手架&#xff0c;创建注册服务和发现服务项目&#xff0c;我用的版本是2.6.13&…

多媒体操作流程

&#xff01; 从左至右依次为&#xff1a;话筒、投影遥控器、ppt演讲笔、幕布升降遥控器、无线投屏连接器 主机箱 投影仪 二、操作流程 1、打开主机电源&#xff1a;最下面两台设备的开关打开 2、打开投影仪&#xff1a;用投影遥控器对准投影仪按开机键&#xff08;如无需用到…

嵌入式系统中端口号的理解与分析

每当看到有人的简历上写着熟悉 tcp/ip, http 等协议时, 我就忍不住问问他们: 你给我说说, 端口是啥吧! 可惜, 很少有人能说得让人满意... 所以这次就来谈谈端口(port), 这个熟悉的陌生人. 在此过程中, 还会谈谈间接层, naming service 等概念, IoC, 依赖倒置等原则以及 TCP 协议…

Java开发从入门到精通(八):Java的面向对象编程OOP:封装、继承、多态

Java大数据开发和安全开发 &#xff08;一&#xff09;Java的封装1.1 什么是封装1.1.1 封装的设计规范1.1.2 代码层面如何控对象的成员公开或隐藏? 1.2 JavaBean(实体类)1.2.1创建实体类1.2.2 实体类有啥应用场景?1.2.3 实体类总结 1.3 static关键字1.3.1 static修饰成员变量…

Groovy语言

1 Groovy介绍 1.1 Groovy介绍 Groovy是一种编程语言&#xff0c;它结合了Java的强大功能和脚本语言的简洁性。它具有动态类型、易读的语法、与Java的紧密集成、脚本编程能力、强大的闭包等特点。 1.2 Groovy SQL介绍 Groovy SQL是 Groovy 编程语言的一部分&#xff0c;用于…

Windows,MacOS,Linux下载python并配置环境图文讲解

Windows 打开python官网 点击download 点击黄色按钮 另存为 打开文件 全选 配置安装路径 安装中 关闭路径长度限制 完成 验证 同时按住winr(win就是空格键左边的东西) 输入cmd 键入python,如果出现版本(红框)即安装成功 MacOS 同理打开python官网 点击最新版本 拖…

LeetCode - 和可被K整除的子数组

974. 和可被 K 整除的子数组 题目描述&#xff1a;一个连续的区间可以被k整除。 一个连续的区间可以被k整除&#xff0c;如果用前缀和就是(arr[r] - arr[l - 1]) / k 0;当然&#xff0c;在计算机语言里面&#xff0c;用除法判断结果是否为0不行&#xff0c;需要用%,(arr[r] -…

使用Make Sense为YOLOv5-5.0制作自定义数据集及应用

详细可参考官方文档&#xff1a; ​​​​​​​培训自定义数据 -Ultralytics YOLOv8 文档 0.使用Make Sense标注数据集 我们在网页上随机下载五张图片用以演示如何使用Make Sense工具进行标注。下载图片存放在指定文件夹中&#xff0c;如下图所示。 Make Sense网页链接&…

【自监督学习算法】

【自监督学习算法】 什么是自监督学习 (SSL) 算法? 自监督学习 (SSL)是一种不断发展的机器学习技术,旨在解决过度依赖标记数据带来的挑战。多年来,使用机器学习方法构建智能系统在很大程度上依赖于高质量的标记数据。因此,高质量注释数据的成本是整个训练过程中的主要…

【Flutter 面试题】await for 如何使用?

【Flutter 面试题】await for 如何使用&#xff1f; 文章目录 写在前面解答补充说明完整代码示例运行结果详细说明 写在前面 &#x1f64b; 关于我 &#xff0c;小雨青年 &#x1f449; CSDN博客专家&#xff0c;GitChat专栏作者&#xff0c;阿里云社区专家博主&#xff0c;51…