MySQL 常用管理方法与命令

Posted cherish the present

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 常用管理方法与命令相关的知识,希望对你有一定的参考价值。

MySQL 常用管理方法与命令

原创 欢马劈雪 时代Java 2023-05-19 07:40 发表于北京

↑ 点击上面 “时代Java”关注我们,
关注新技术,学习新知识!

运行与关闭 MySQL 服务器

首先检查 MySQL 服务器是否正在运行。可以使用下列命令来确认这一点:

ps -ef | grep mysqld

如果 MySQL 正在运行,在上述命令的运行结果中就能看到 mysqld 进程。如果服务器没有运行,使用下列命令来启动它:

root@host# cd /usr/bin./safe_mysqld &
 

如果想关闭正在运行的 MySQL 服务器,使用如下命令即可:

root@host# cd /usr/bin./mysqladmin -u root -p shutdownEnter password: ******

 

建立 MySQL 用户账号

添加新的 MySQL 用户,只需在数据库 mysql 的 user 表中添加一个新项即可。

在以下范例中,添加了一个新用户 guest,该用户具有 SELECT、INSERT、UPDATE 权限,密码是 guest123。SQL 查询如下:

root@host# mysql -u root -pEnter password:*******mysql> use mysql;Database changed
mysql> INSERT INTO user (host, user, password, select_priv, insert_priv, update_priv) VALUES (\'localhost\', \'guest\', PASSWORD(\'guest123\'), \'Y\', \'Y\', \'Y\');Query OK, 1 row affected (0.20 sec)
mysql> FLUSH PRIVILEGES;Query OK, 1 row affected (0.01 sec)
mysql> SELECT host, user, password FROM user WHERE user = \'guest\';+-----------+---------+------------------+| host | user | password |+-----------+---------+------------------+| localhost | guest | 6f8c114b58f2ce9e |+-----------+---------+------------------+1 row in set (0.00 sec)
 

在添加新用户时,记住要用 MySQL 提供的 PASSWORD() 函数对该用户的密码进行加密处理。如上例所示,密码 mypass 被加密成了 6f8c114b58f2ce9e。

注意这里所用的 FLUSH PRIVILEGES 语句。它让服务器重新加载授权表。如果不使用它,就至少得等到服务器重新启动后,才能使用新用户账号连接 mysql。

你也可以为新用户指定其他权限,在执行 INSERT 查询时,将用户表中的下面这些列的值都设为 ‘Y’,或者使用 UPDATE 查询稍后对它们进行更新。

  • Select_priv

  • Insert_priv

  • Update_priv

  • Delete_priv

  • Create_priv

  • Drop_priv

  • Reload_priv

  • Shutdown_priv

  • Process_priv

  • File_priv

  • Grant_priv

  • References_priv

  • Index_priv

  • Alter_priv

另外一种添加用户账号的方式是使用 SQL命令 GRANT。下面这个例子将在数据库 TUTORIALS 上添加一个名为 zara 的新用户,其密码为 zara123。如下所示:

root@host# mysql -u root -p password;Enter password:*******mysql> use mysql;Database changed
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON TUTORIALS.* -> TO \'zara\'@\'localhost\' -> IDENTIFIED BY \'zara123\';
 

这会在 mysql 数据库的 user 表中创建一个项。

注意:如果 SQL 命令不以分号(;)结束的话,MySQL 就不会终止这个命令。

 

配置 /etc/my.cnf 文件

大多数情况下,根本用不到这个文件。默认状态下,它应该包含如下项:


[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock
[mysql.server]user=mysqlbasedir=/var/lib
[safe_mysqld]err-log=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid

在这里,可以为 error log 更换不同的目录。另外,不要更改这张表中的其他项。

用于管理 MySQL 的一些命令

下面列出了一些重要且经常会用到的MySQL命令:

  • USE Databasename 用于在MySQL工作区内选择具体某个数据库。

  • SHOW DATABASES 列出 MySQL DBMS 所能访问的数据库。

  • SHOW TABLES 一旦数据库被 use 命令选中,显示数据库中的表。

  • SHOW COLUMNS FROM tablename 显示表的属性、属性类型、键信息、是否允许 NULL 值,默认值,以及其他一些信息。

  • SHOW INDEX FROM tablename 显示表中所有索引的细节信息,包括PRIMARY KEY。

  • SHOW TABLE STATUS LIKE tablename\\G 报告MySQL DBMS的性能及统计的细节信息。

--
知识
分享,时代前行!
~~ 时代Java

还有更多好文章……
请查看历史文章和官网,
↓有分享,有收获~

欢马劈雪

知足知止 ~~

阅读原文
阅读 100
 

创建数据库中,超详细常用的MySQL命令(含解析图解与全部代码)

目录

系统命令行

MySQL命令行

数据库命令

数据表命令

建表并导入数据

表的其他操作


系统命令行

以下是在系统命令行,已管理员身份运行的情况下,MySQL的一些命令

1.这两条是关闭MySQL服务与开启MySQL服务的命令

net stop MySQL
net start MySQL80

 连接MySQL服务:

mysql -u root -p

MySQL命令行

数据库命令

 创建数据库前的操作,如果存在csdb则删除 :

drop database if exists csdb; 

create DATABASE RUNOOB; 创建数据库

drop database <数据库名>;   删除数据库

SHOW DATABASES;        展示所有数据库
use RUNOOB;            选择数据库

create DATABASE RUNOOB;
drop database <数据库名>;
SHOW DATABASES; 
use RUNOOB;  

数据表命令

建表并导入数据

CREATE TABLE table_name (column_name column_type); 创建数据表的基本语法

CREATE TABLE table_name (column_name column_type);

以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法:

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );

create table teacher //建立表TEACHER

(

id int(3) auto_increment not null primary key,        //将 ID 设为长度为 3 的数字字段 int(3) 并让它每个记录自动加一,auto_increment 并不能为空 not null ,而且让他成为主字段 primary key

name char(10) not null,        //将 NAME 设为长度为 10 的字符字段

address varchar(50) default '深圳',        //将 ADDRESS 设为长度 50 的字符字段,而且缺省值(默认值)为深圳

year date        //将 YEAR 设为日期字段。

); //建表结束

将文本数据转到数据库中:

        以上面建立的表为例:

        1、文本数据应符合的格式:字段数据之间用 tab 键隔开,null 值用 \\n 来代替.

        例:

        3 rose 深圳二中 1976-10-10

        4 mike 深圳一中 1975-12-23

        2、数据传入命令

        load data local infile "文件名" into table 表名;

注意:你最好将文件复制到 \\mysql\\bin 目录下,并且要先用 use 命令打表所在的库。

备份数据库: (命令在DOS的 \\mysql\\bin 目录下执行)

mysqldump --opt school>school.bbb

注释:将数据库 school 备份到 school.bbb 文件,school.bbb 是一个文本文件,文件名任取,打开看看你会有新发现。


表的其他操作

以下为删除MySQL数据表的通用语法:

(如果B表里面有A表的属性,那个必须先删除B表,才能删除A表)

DROP TABLE table_name ;

以下为在MySQL数据库中查询数据通用的 SELECT 语法:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]

增加属性或主键:

Alter table 表名 add 字段名 类型                        //增加属性

Alter table test_supplements primary(id);        //增加主键

删除属性或主键 :

Alter table 表名 drop字段名                                        //删除属性

Alter table test_supplements drop primary key;        //删除主键

读取数据表:

select * from runoob_tbl;

查看所有数据表:

SHOW TABLES命令可显示表是基表还是视图。 要在结果中包含表类型,请使用SHOW TABLES语句

SHOW TABLES;
SHOW FULL TABLES;

查找数据库表:

例如查找以“s“开头的数据表:

SHOW TABLES LIKE 's%';

mysql> SHOW TABLES LIKE 's%';
+---------------------+
| Tables_in_csdb (s%) |
+---------------------+
| school              |
| student             |
+---------------------+
2 rows in set (0.00 sec)

查找以’tion‘字符串结尾的表

HOW TABLES LIKE '%tion';

查找特定的Table_type的数据表:

SHOW FULL TABLES WHERE table_type = 'BASE TABLE';

mysql> SHOW FULL TABLES WHERE table_type = 'BASE TABLE';
+----------------+------------+
| Tables_in_csdb | Table_type |
+----------------+------------+
| school         | BASE TABLE |
| student        | BASE TABLE |
+----------------+------------+

查询表中的信息:

 select * from <表名>;

查看表的属性:

describe <表名>;

 查询表中某一属性的值:

select DISTINCT <属性名> from <表名>;
//DISTINCT 去重复值,看需求是否添加

查询表中某一属性是上面值的对应属性:

select * from student where sdept='物联网工程系';
select sname from student where sdept='物联网工程系';

增加表中的信息:

insert into <表名> (键1,键2) values ("具体值1","具体值2");

修改表中的信息:

例如:update school set schoolName=‘数学学院’ where schoolID='XY002';

意思是:将schoolID为XY002的schoolName的值改为”数学学院“

update <表名> set 键="值",键=值,键=值 where 主键="对应要修改的主键名";

删除表中的信息;

删除schoolID为XY002的相关消息

delete form bbs where schoolID=XY002;

 计算年龄:

select year(now())-year(sbirthday) as sage from student;
select sno,sname,year(now())-year(sbirthday) as sage from student;

 

索引的相关操作 

 查看索引:

show index from school\\G

创建索引:

CREATE UNIQUE INDEX indexName ON mytable(username(length)) 

 添加索引:

ALTER table tableName ADD INDEX indexName(columnName)
//tableName<表名>, indexName<索引名>,columnName<属性名>

删除索引:

DROP INDEX [indexName] ON mytable; 


如果有帮助的话,欢迎点赞收藏哦~🤩,有不同见解或更好的观点也可以在评论区留言,也可以笔者点点关注,互通有无,互相进步。

以上是关于MySQL 常用管理方法与命令的主要内容,如果未能解决你的问题,请参考以下文章

mysql常用命令

MySQL 基础知识与常用命令

创建数据库中,超详细常用的MySQL命令(含解析图解与全部代码)

MySQL GUI图形化界面常用软件推荐

MySQL数据库管理

2021-06-17