Mysql数据库启动-关闭-登录-查看帮助

#单实例启动
1./etc/init.d/mysqld start 2.service mysqld start/restart 3./usr/local/mysql/binmysqld_safe --user=mysql & #单实例关闭
1./etc/init.d/mysqld stop 2.service mysqld stop 3.pkill mysqld #最好不要使用这种方法,可能会引起数据丢失 #单实例登录
mysql <刚装完无密码
mysql -uroot <刚装完无密码
mysql -uroot -p <==这里标准的dba命令行登录命令
mysql -uroot -p'123' >非脚本不适用 #查看帮助
[root@localhost /]# mysql --help
mysql> help #登陆后
mysql> help show databases; #查看show databases怎么用

Mysql数据库丢失后多种找回密码方法实践

#方法1:
[root@localhost ~]# /etc/init.d/mysqld stop
[root@localhost ~]# mysqld_safe --skip-grant-tables &
[root@localhost ~]# mysql #直接进入
mysql> update mysql.user set password=PASSWORD("123") where user="root" and host="localhost";
mysql> flush privileges; #刷新
[root@localhost ~]# pkill mysql #杀掉mysql
[root@localhost ~]# /etc/init.d/mysqld start #再次启动mysql
[root@localhost ~]# mysql -uroot -p #输入刚才设置的密码 #多实例的话,需要先杀掉mysql,然后mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-table &,然后mysql -u root -p -S /data/3306/mysql.sock #登录时空密码

语言简介与SQL分类介绍

  SQL,英文全称Structured Query Language,中文意思是结构化查询语言,它是一种对关系数据库中的数据进行定义和操作的句法,为大多数关系数据库管理系统所支持的工业标准

  结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。结构化查询语言是高级的非国产化变成语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使他具有极大的灵活性和强大的功能

  结构化查询语言包含6个部分:
  一.数据查询语言(DQL):

    其语句,也称为“数据检索语句”,用以从表中获取数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用的最多的动词,其他DQL常用的保留自由WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。

  二.数据操作语言(DML):

    其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。

  三.事务处理语言(TPL):

    它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK

  四.数据控制语言(DCL):

    它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

  五.数据定义语言(DDL):

    其语句包括动词CREATE和DROP。在数据库中创建新表和删除表(CREAT TABLE或DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中或暗的数据有关的保留字。它也是动作查询的一部分

  六.指针控制语言(CCL):

    它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

  常见分类:

    SQL分类:

    DDL------数据定义语言(CREATE,ALTER,DROP)

    DML------数据操纵语言(SELECT,INSTER,DELETE,UPDATE)

    DCL------数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)

Mysql常用基础命令

1.建库、查库

#建库
命令:create database <数据库名>
mysql> create database daniel;
Query OK, 1 row affected (0.00 sec) 查看建库的语句
mysql> show create database daniel;
+----------+-------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------+
| daniel | CREATE DATABASE `daniel` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-------------------------------------------------------------------+
1 row in set (0.00 sec)
#latin1:字符集,默认的 查询库
mysql> show databases like 'dan%'; #模糊查询
+-----------------+
| Database (dan%) |
+-----------------+
| daniel |
+-----------------+
1 row in set (0.00 sec) 创建一个gbk字符集库
mysql> create database daniel_gbk default character set gbk collate gbk_chinese_ci;
Query OK, 1 row affected (0.00 sec) 创建一个utf8字符集库
mysql> create database daniel_utf8 character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec) #删库
命令:DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
mysql> drop database daniel; Query OK, 0 rows affected (0.07 sec)

2.连接库、删库、删除用户

#连接数据库
命令:use <db_name>,切换数据库,跟cd切换目录一样 mysql> use daniel_gbk;
Database changed #查看你在哪个数据库里面,相当于pwd
mysql> select database();
+------------+
| database() |
+------------+
| daniel_gbk |
+------------+
1 row in set (0.00 sec) #查看当前用户
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec) #查看当前用户
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.5.32 |
+-----------+
1 row in set (0.00 sec) #查看表
mysql> show tables;
Empty set (0.00 sec) #查看系统账号
mysql> select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| | C-server |
| root | C-server |
| | localhost |
| root | localhost |
+------+-----------+
6 rows in set (0.00 sec) #删除系统多余账号
mysql> drop user ''@'localhost'; #大写的可能删不掉,我们换一种办法
mysql> delete from mysql.user where user='' and host='C-server';
Query OK, 1 row affected (0.00 sec)

3.单机及多机用户授权

1.先建用户,再授权
mysql> create user 'daniel'@'localhost' identified by '123';
Query OK, 0 rows affected (0.00 sec) #创建用户,赋予密码,允许本机连接 mysql> grant all on daniel_gbk.* to daniel@'localhost';
Query OK, 0 rows affected (0.00 sec) #授权 2.直接grant
mysql> grant all privileges on daniel_utf8.* to danieu_tf8l@'localhost' identified by '1234';
Query OK, 0 rows affected (0.00 sec) 3.多机授权
mysql> grant all privileges on daniel_utf8.* to daniel_utf8@'10.0.0.%' identified by '1234';
Query OK, 0 rows affected (0.00 sec) #允许10.0.0.0网段连接 4.远程连接
mysql -uroot -p -h 10.0.0.1 5.all privileges是什么?
#这是一个权限包 5.收回权限
mysql> revoke insert on daniel_utf8.* from daniel@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql>show grants for daniel_utf8@'localhost';
GRANT SELECT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `daniel_utf8`.* TO 'daniel_utf8l'@'localhost #查看还剩多少权限,这就是ALL PRIVILEGES权限包所有的权限,加一个INSERT #生产环境授权用户建议
一般来说我们只给select,insert,update,delete权限,再加上create,drop。 #读库写库的不同
写库
blog 123 3306 10.0.0.7
写库
blog 123 3306 10.0。0.8
#隐藏的不同:授权的权限不同

4.表操作

#建表
命令:create <表名>(<字段名1 > <类型 n> ....<字段名 n><类型n>); mysql> create table test(id int(4) not null primary key auto_increment, name char(20) not null);
Query OK, 0 rows affected (0.01 sec) #查询表
mysql> show create table test\G;
*************************** 1. row ***************************
Table: test
Create Table: CREATE TABLE `test` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`name` char(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec) #Mysql字段类型
1.INT(M)型:正常大小证书类型
2.DOUBLE[(M,D)] [ZEROFILL]型:正常大小(双精密)浮点数字类型
3.DATE日期类型:支持的范围是1000-01-01到9999-12-31.MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列
4.CHAR(M)型:定长字符串类型,当存储是,总是使用空格填满右边到指定的长度
5.BLOG TEXT类型,最大长度为65535(2^16-1)个字符
6.VARCHARE型:变长字符串类型 #插入数据
命令:insert into <表名> [(<字段名1>[,..<字段名 n>])] values (值1)[,(值n)];
mysql> insert into test(id,name) values(001,'zhaoyue');
Query OK, 1 row affected (0.01 sec) 批量插入
mysql> insert into test values(4,'a'),(5,'b');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0 mysql> insert into test(name) values('c'),('d'),('e');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0 #提升效率,因为建表的时候auto_increment,所以id是自增的 #查询
命令:select<字段 1,字段 2..>from <表名>where<表达式>
mysql> select * from test; #查询所有航 mysql> select * from test limit 0,2; #从第0行开始查,查2行记录,不加0就是查找2两行,一个用处 mysql> select * from test order by id desc; #以id为标准,倒序 mysql> select * from test order by id asc; #以id为标准,正序 mysql> select * from test where name='a'; #查询名字,以name字段为基准 mysql> select * from test where id=1; #查询,id可以不加单引号 mysql> select * from test where id<5 and id >2; #组合查询,and为关键字,逻辑和,必须两个都满足才会出结果 mysql> select * from test where id<5 and id >2; #只要满足一个即可 #多表查询,先建表 创建学生表
create table student(
Sno int(10) NOT NULL COMMENT 'No.',
Sname varchar(16) NOT NULL COMMENT 'name',
Ssex char(2) NOT NULL COMMENT 'Gender',
Sage tinyint(2) NOT NULL default '0' COMMENT 'age',
Sdept varchar(16) default NULL COMMENT 'Department',
PRIMARY KEY (Sno),
key index_Sname (Sname)
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 创建课程表
create table course(
Cno int(10) NOT NULL COMMENT 'kechenghao',
Cname varchar(64) NOT NULL COMMENT 'kechengming',
Ccredit tinyint(2) NOT NULL COMMENT 'xuefen',
PRIMARY KEY (Cno)
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=UTF8; 创建选课表
create table `SC` (
SCid int(12) NOT NULL auto_increment COMMENT 'zhujian',
`Cno` int(10) NOT NULL COMMENT 'kechenghao',
`Sno` int(10) NOT NULL COMMENT 'xuehao',
`Grade` tinyint(2) NOT NULL COMMENT 'xueshengchengji',
PRIMARY KEY (`SCid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 学生表插入数据
INSERT INTO student values(0001,'a','man',24,'a');
INSERT INTO student values(0002,'b','man',24,'b');
INSERT INTO student values(0003,'c','man',24,'c');
INSERT INTO student values(0004,'d','man',24,'d');
INSERT INTO student values(0005,'e','man',24,'e'); 课程表插入数据
INSERT INTO course values(1001,'C','5');
INSERT INTO course values(1002,'JAVA','4');
INSERT INTO course values(1003,'MYSQL','2');
INSERT INTO course values(1004,'yunwei',9);
INSERT INTO course values(1005,'math',3); 选课表插入数据
INSERT INTO SC(Sno,Cno,Grade) values(0001,1001,4);
INSERT INTO SC(Sno,Cno,Grade) values(0001,1002,3);
INSERT INTO SC(Sno,Cno,Grade) values(0001,1003,1);
INSERT INTO SC(Sno,Cno,Grade) values(0001,1004,6);
INSERT INTO SC(Sno,Cno,Grade) values(0002,1001,3);
INSERT INTO SC(Sno,Cno,Grade) values(0002,1002,2);
INSERT INTO SC(Sno,Cno,Grade) values(0002,1003,2);
INSERT INTO SC(Sno,Cno,Grade) values(0002,1004,8);
INSERT INTO SC(Sno,Cno,Grade) values(0003,1001,4);
INSERT INTO SC(Sno,Cno,Grade) values(0003,1002,4);
INSERT INTO SC(Sno,Cno,Grade) values(0003,1003,2);
INSERT INTO SC(Sno,Cno,Grade) values(0003,1004,8);
INSERT INTO SC(Sno,Cno,Grade) values(0004,1001,1);
INSERT INTO SC(Sno,Cno,Grade) values(0004,1002,1);
INSERT INTO SC(Sno,Cno,Grade) values(0004,1002,1);
INSERT INTO SC(Sno,Cno,Grade) values(0004,1003,2);
INSERT INTO SC(Sno,Cno,Grade) values(0004,1004,3);
INSERT INTO SC(Sno,Cno,Grade) values(0005,1001,5);
INSERT INTO SC(Sno,Cno,Grade) values(0005,1002,3);
INSERT INTO SC(Sno,Cno,Grade) values(0005,1003,2);
INSERT INTO SC(Sno,Cno,Grade) values(0005,1004,9); #查询总分
mysql> select Sname,sum(Grade) from SC a,student b where a.Sno=b.Sno;
mysql> select Sname,sum(Grade) from SC a,student b where a.Sno=b.Sno group by Sname; #使用explain查询select语句使用索引情况
mysql> explain select * from test where name='daniel'\G;
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: test
type: ALL
possible_keys: NULL #没有走索引
key: NULL #没有走索引
key_len: NULL
ref: NULL
rows: 8
Extra: Using where
1 row in set (0.00 sec) mysql> explain select * from test where id=6\G;
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: test #表
type: const #类型
possible_keys: PRIMARY #索引
key: PRIMARY #索引
key_len: 4
ref: const
rows: 1
Extra:
1 row in set (0.01 sec)

5.更新及删除库操作

mysql> select * from test;
+----+---------+
| id | name |
+----+---------+
| 1 | zhaoyue |
| 2 | daniel |
| 3 | jack |
| 4 | a |
| 5 | b |
| 6 | c |
| 7 | d |
| 8 | e |
+----+---------+
#修改 #修改id为7的name
mysql> update test set name='faker' where id=7;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0 #修改name为faker的id
mysql> update test set id=100 where name='faker';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0 #删除 #删除id=8的
mysql> delete from test where id=8;
Query OK, 1 row affected (0.00 sec) #truncate table 表名--清除表内所有数据
mysql> truncate table test;
Query OK, 0 rows affected (0.00 sec)

表中增删改字段(dba操作)

命令:alter table 表名 add 字段 类型 其他;
例如:在表中添加字段 mysql> desc test; #现在test表只有两列
+-------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+----------------+
| id | int(4) | NO | PRI | NULL | auto_increment |
| name | char(20) | NO | | NULL | |
+-------+----------+------+-----+---------+----------------+
2 rows in set (0.00 sec) mysql> alter table test add sex char(4);
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0 #添加一个sex段 #默认放在最后一列,我要插在第一列后面怎么弄?
mysql> alter table test add age int(4) after id;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0 #修改表名
mysql> rename table test to new_test;
Query OK, 0 rows affected (0.02 sec)

Mysql进阶-day1的更多相关文章

  1. mysql进阶(二十九)常用函数

    mysql进阶(二十九)常用函数 一.数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP ...

  2. mysql进阶(二十八)MySQL GRANT REVOKE用法

    mysql进阶(二十八)MySQL GRANT REVOKE用法   MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器: 授权->确定用户是否拥有足够的权限执 ...

  3. mysql进阶(二十七)数据库索引原理

    mysql进阶(二十七)数据库索引原理 前言   本文主要是阐述MySQL索引机制,主要是说明存储引擎Innodb.   第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础.    ...

  4. mysql进阶(二十六)MySQL 索引类型(初学者必看)

    mysql进阶(二十六)MySQL 索引类型(初学者必看)   索引是快速搜索的关键.MySQL 索引的建立对于 MySQL 的高效运行是很重要的.下面介绍几种常见的 MySQL 索引类型.   在数 ...

  5. mysql进阶(十六)常见问题汇总

    mysql进阶(十六)常见问题汇总 MySQL视图学习: http://www.itokit.com/2011/0908/67848.html 执行删除操作时,出现如下错误提示: 出现以上问题的原因是 ...

  6. 【转】MySQL— 进阶

    [转]MySQL— 进阶 目录 一.视图 二.触发器 三.函数 四.存储过程 五.事务 一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需 ...

  7. MySQL进阶(视图)---py全栈

    目录 mysql进阶(视图)---py全栈 一.什么是视图? 二.视图的特性 三.视图的优点 四.使用场合 五.视图基本操作 六.案例 mysql进阶(视图)---py全栈 一.什么是视图? 视图是从 ...

  8. mysql进阶练习

    一 .  MySQL进阶练习 /*==========================创建班级表=============================*/ CREATE TABLE class ( ...

  9. MySQL进阶19--函数的创建(举例)/设置mysql的创建函数的权限/查看(show)/删除(drop) / 举4个栗子

    /*MySQL进阶19 函数 存储过程和函数:都类似于java中的方法; 存储过程和函数通用好处: 1.提高代码的重用性 2.简化操作 好处: 减少操作次数,减少了编译次数,减少了和服务器的连接次数, ...

随机推荐

  1. Struts2 resulttype

    本文章只介绍较为常用的三种result type 1.dispatcher 2.redirect 3.redirectAction 一.dispatcher 用于转向JSP页面,这个是默认的结果类型, ...

  2. [PY3]——内置数据结构(7)——字典及其常用操作

    字典及其常用操作Xmind图 关于字典 字典是一种key-value结构 字典是无序的 字典的定义 # {}大括号可以直接定义一个空字典 In [1]: d={};type(d) Out[1]: di ...

  3. POJ 3710:Matrix Power Series

    Description 给出矩阵 \(n*n\) 的 矩阵\(A\) , 求 \(A^1+A^2+A^3...+A^k\) Solution 首先我们设 \(S_n=\sum_{i=1}^{n}A^i ...

  4. c# 旋转图片 无GDI+一般性错误

    using (System.Drawing.Bitmap backgroudImg = System.Drawing.Bitmap.FromFile(DoubleClickPicInfo.FileNa ...

  5. NET Core 应用程序 IIS 运行报错 502.3-Gateway

    转自:http://www.zmland.com/forum.php?mod=viewthread&tid=941 将 NET Core 应用程序部署在 IIS 环境,默认配置下,如果任务执行 ...

  6. Cheatsheet: 2017 10.01 ~ 12.31

    Mobile Updating Your App for iOS 11 Get Started With Natural Language Processing in iOS 11 Getting S ...

  7. 二、多线程之Atomic包

    一.简介 1.原子操作 我们在使用变量的时候,经常会出现资源竞争的情况,为了保证变量安全,我们就会对对应的方法添加"synchronized"同步锁来达到目的,以保证线程安全. 而 ...

  8. ecstore关于smarty语法调用

    以下是smarty语法 转自http://www.phpwindow.com/ecstore_smarty2.html assign 属性 类型 是否必须 描述 var string yes 被赋值的 ...

  9. git杂记-撤销操作

    覆盖上一次的提交或重新更新提交说明 $ git commit --amend -m '我再次提交啦,上一次的提交已经不见啦.这是一个危险的操作哦.哈哈,其实并不危险,也是可以数据恢复的啦' 取消已暂存 ...

  10. 公共cdn的js和css库

    使用cdn的js和css公用库 为什么要使用cdn,用cdn资源有什么好处了,可以看看yahoo性能建议,中间有一条的http://developer.yahoo.com/performance/ru ...