Mysql-常用命令

更改mysql密码:

[root@docker01 ~]# mysqladmin -uroot -p password mysql【新密码】  
Enter password: ##输入的是原先mysql的密码 

卸载mysql:yum remove mariadb-server

安装:yum install mariadb-server

[root@docker01 ~]# rpm -qif `which mysql`  #返回软件包的有关信息

[root@docker01 ~]# rpm -qf `which mysql`   #返回软件包的全名
mariadb-10.1.20-2.el7.x86_64

[root@docker01 ~]# rpm -qlf `which mysql` #返回软件安装的文件列表

[root@docker01 ~]# rpm -ql mariadb-server-10.1.20-2.el7.x86_64

/var/lib/mysql   #数据库存储的地方
/var/log/mariadb

 

[root@docker01 ~]# systemctl start mariadb # 开启服务

[root@docker01 ~]# systemctl enable mariadb # 设置为开机自启动服务

首次安装需要进行数据库的配置:

[root@docker01 ~]# mysql_secure_installation

Enter current password for root (enter for none):  # 输入数据库超级管理员root的密码(注意不是系统root的密码),第一次进入还没有设置密码则直接回车

Set root password? [Y/n]  # 设置密码,y

New password:  # 新密码
Re-enter new password:  # 再次输入密码
Remove anonymous users? [Y/n]  # 移除匿名用户, y
Disallow root login remotely? [Y/n]  # 拒绝root远程登录,n,不管y/n,都会拒绝root远程登录
Remove test database and access to it? [Y/n]  # 删除test数据库,y:删除。n:不删除,数据库中会有一个test数据库,一般不需要
Reload privilege tables now? [Y/n]  # 重新加载权限表,y。或者重启服务也许

[root@docker01 ~]# mysql -uroot -prcs551552?

[root@docker01 ~]# mysql -uroot -prcs551552? -h IP  -P port

MariaDB [(none)]> show databases;   #查看数据库中有哪些库

MariaDB [(none)]> use mysql;   #进入mysql这个库;use test进入test库

MariaDB [mysql]> show tables;  #显示mysql这个库中有哪些表

MariaDB [mysql]> describe user; #显示user这个表的表结构组成

MariaDB [mysql]> select host,user,password from user; #显示user表中的host,user,password字段

MariaDB [mysql]> select host,user,password from mysql.user; 

刷新权限表:

MariaDB [mysql]> flush privileges;或者[root@docker01 ~]# systemctl restart mariadb

MariaDB [(none)]> show processlist; #查看连接到我们数据库的信息

[root@docker01 ~]# mysql -uroot -pmysql -e "show variables like 'server_id'"  #免交互式在linux命令行查询数据库内容

[root@docker01 ~]# mysql -uroot -pmysql -e "show databases;"    #不登录数据库中查看

MariaDB [(none)]> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
| root | 127.0.0.1 | *FF867C932AFB0CFF7F959E31A867C1807FBB25B7 |
| root | ::1 | *FF867C932AFB0CFF7F959E31A867C1807FBB25B7 |
+------+-----------+-------------------------------------------+

user:使用哪个用户登录数据库;用户的功能,1是登录数据库,2是管理数据库对象 

host:该用户使用哪个IP或者哪些IP可以登录这台数据库

插入insert \ 创建create\  删除delete \更新update \查看select \drop

grant all  on *.* to repl@'192.168.0.%' identified by '123';

grant 为固定写法

all 是权限,所有权限;也可以写成:UPDATE、INSERT、DELETE、CREATE

*.*代表所有库;test.*代表test库下的所有表设置权限

repl@'192.168.0.%' 给哪个用户设置权限

identified by '123' 设置密码

MariaDB [(none)]> create user mysql1@'192.168.23.%' identified by '123';  #创建个mysql1用户,允许在192.168.23网段的机器上可以登录,密码是123

MariaDB [(none)]> drop user mysql1@'192.168.23.%' ; # 删除用户

MariaDB [(none)]> show grants for mysql@'192.168.23.%'; #查看用户权限

MariaDB [(none)]> grant insert,create on mysql.* to mysql1@'192.168.23.%' identified by '123';  给用户添加权限

MariaDB [(none)]> revoke insert on mysql.* from mysql1@'192.168.23.%';  #回收权限,将mysql1用户对mysql这个库的所有表的插入权限回收

MariaDB [(none)]> select user,host,password from mysql.user;  #以列表形式打印

MariaDB [(none)]> select user,host,password from mysql.user\G  #以key-value形式打印

MariaDB [(none)]> tee /tmp/mysql.log  执行这个操作后,下面所有的操作都会被记录到当前主机的/tmp/mysql.log中

MariaDB [(none)]> create database csren; #创建一个库

MariaDB [(none)]> help create database  #查看create database 这个命令怎么用

MariaDB [(none)]> show create database csren; #看下创建过程

创建表步骤:

MariaDB [(none)]> use csren;  #切换库,要在哪个库下创建表,就切换到哪个库

MariaDB [csren]> create table t1(id int,name varchar(20)); #创建一个叫t1的表,定义两个列项和数据类型

MariaDB [csren]> show tables;  #查看csren这个库有哪些表

MariaDB [csren]> describe t1;  #查看t1表结构.或者desc t1 

MariaDB [csren]> drop table t1; #删除t1整个表 

MariaDB [csren]> alter table t1 add age int;   #给现有的t1表再增加一列数据

MariaDB [csren]> alter table t1 add level int,add score int; #添加两列内容

MariaDB [csren]> alter table t1 add sex varchar(20) after id; #在id列后添加一列sex

MariaDB [csren]> alter table t1 add sid int first; #在第一列添加sid

MariaDB [csren]> alter table t1 drop level;  #删除level列

MariaDB [csren]> alter table t1 modify score varchar(20); #修改score的数据类型

MariaDB [csren]> alter table t1 change score score_1 varchar(20);  #修改t1表的score列名为score_1

 MariaDB [csren]> rename table t1 to t2;  #修改表名

MariaDB [csren]> alter table t2 rename to t3;  #这个和上面改表明是一样的

DML主要针对数据库表中的行进行操作:insert \delete \update

要是往表中写数据,就要先看下表中结构是什么样

先use csren切换到csren这个库

MariaDB [csren]> insert into t3 values(1,'M','ren',18,72); #因为数据结构是5个,所以插入数据的时候也要写五个

MariaDB [csren]> select * from t3;

MariaDB [csren]> insert into t3 values(2,'M','ren',18,72),(3,'W','LI',34,23); #插入多行

MariaDB [csren]> select * from t3;

MariaDB [csren]> insert into t3(id) values(4);  #只对某列数据进行插入

 更新表中的某个值:

MariaDB [csren]> update t3 set name='cheng' where id=2; #将id=2那一行中的name设置成cheng

MariaDB [csren]> delete from t3 where id=4; #删除某一行

MariaDB [csren]> truncate table t3;  #清空某个表,物理上清空

 --select条件查询配合where

MariaDB [csren]> select * from t3 where name='ren';  #从t3表中查询name=ren的一行数据

MariaDB [csren]> select * from t3 where id=2;   #查找ID=2的数据;条件为字符串的时候需要用引号引起来,mysql不区分大小写

MariaDB [csren]> select * from t3 where id=2 and name='cheng';  #与条件查询,两个条件都满足才能打印

MariaDB [csren]> select * from t3 where id=2 or name='ren';  #满足一个条件的都会打印,意思是满足条件id=2的打印出来,name=ren的也打印出来

MariaDB [csren]> select * from t3 where id between 1 and 3;  #查询ID从1-3的值

MariaDB [csren]> select * from t3 where name in ('ren','cheng');  #查询name字段是ren或者cheng

MariaDB [csren]> select * from t3 where name like 're%';  #查找name中是re*的字段的值

MariaDB [csren]> select * from t3 where name like '%e%'; 

MariaDB [csren]> select * from t3 where name like '%e%' order by id desc; #在t3表中,查找name中包含e的字段,且按id降序排列输出;asc升序排列

MariaDB [csren]> select * from t3 where name like '%e%' order by id desc limit 3; #limit 3代表只显示前3行

 

posted @ 2021-05-21 09:32  闲云野鹤cs  阅读(1)  评论(0编辑  收藏  举报