数据库的关闭方法:

、优雅的关闭数据库的方法:
mysqladmin -uroot -p123456 shutdown 、脚本关闭:
/etc/init.d/mysqld stop 、使用kill信号的方法(最好不用)
kill -USR2 'cat path/pid' history不记录历史命令 HISTCONTROL=ignorespace (敲命令的时候加一个空格,可以不记录) 善于使用mysql的help Mysql设置密码的方法:
mysqladmin -uroot password '' mysqladmin -uroot password '' -S /data//mysql.sock(多实例的密码设置) Mysql修改密码: mysqladmin -uroot -p123456 password 'template' mysqladmin -uroot -p123456 password 'template' -S /data//mysql.sock(多实例修改密码) 使用sql语句修改密码: mysql>UPDATE mysql.user SET password=PASSWORD("") WHERE user='root'; set方法:
set password=password('') Mysql密码忘记找回步骤: 、先停止数据库
/etc/init.d/mysqld stop 、使用--skip-grant-tables启动mysql,忽略授权登录验证 [root@localhost ~]# mysqld_safe --skip-grant-tables --user=mysql & 空密码登录:
[root@localhost ~]# mysql 修改密码:
mysql>update mysql.user set password=password("") where user='root' and host='localhost'; 刷新权限:
mysql>flush privileges; 关闭mysql
[root@localhost ~]# mysqladmin -uroot -p123456 shutdown 重新启动mysql
[root@localhost ~]# /etc/init.d/mysqld start [root@localhost ~]# mysql -uroot -p123456 SQL Structured Query Language SQL结构化查询语言 数据库简单操作: 创建数据库时指定字符集:
mysql> create database template_gbk default character set gbk mysql> show create database template_gbk mysql> show databases; mysql> select database(); 查看当前连接的数据库 mysql> select now(); 查看当前时间 mysql> select user(); 查看当前用户 mysql> select version(); 查看当前版本 mysql> show tables;查看表 删除Mysql系统多余账号 drop user 'template'@'localhost'; 删除用户
如果drop删除不了(一般是特殊字符或大写)可以使用下面的方式删除
mysql> delete from mysql.user where user='root' and host='localhost';
mysql> flush privileges; 创建Mysql用户及赋予用户授权
mysql> grant all on test.* to 'template'@'localhost' identified by ''; mysql> flush privileges; mysql> show grants for 'template'@'localhost'; 查看权限 create 和grant 配合方法 mysql> create user 'template'@'localhost' identefied by ''; mysql> grant all on dbname.* to 'username'@'localhost'; #赋予权限 #授权局域网内主机远程连接数据库 %匹配法
mysql> grant all on *.* to 'someuser'@'%' identified by ''; 子网掩码匹配法
mysql> grant all on *.* to 'someuser'@'10.0.0.0/255.255.255.0' identified by ''; mysql -uroot -p123456 -h 10.0.0.7 -P 远程连接 revoke insert on test.* from 'template'@'localhost'; 收回权限 mysql> show grants for oldboy@'localhost'; 查看权限 SELECT
INSERT
UPDATE
DELETE
CREATE
DROP
REFERENCES
INDEX
ALTER
CREATE TEMPORARY TABLES
LOCK TABLES
EXECUTE
CREATE VIEW
SHOW VIEW
CREATE ROUTINE
ALTER ROUTINE
EVENT
TRIGGER mysql> select * from mysql.user; insert(增),delete(删),update(改),select(查) 生成数据库表后,要收回create 和drop授权 mysql> create database template; 创建数据库 mysql> show create database template;查看建库信息
+----------+-------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------+
| template | CREATE DATABASE `template` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-------------------------------------------------------------------+
row in set (0.00 sec) 建表:
create table <表名>(
<字段名 ><类型 >,
...
<字段名 n><类型 n>); 建表语句: create table student( id int() not null, name char() not null, age tinyint() not null default '', dept varchar() default null ); mysql> show create table student\G
*************************** . row ***************************
Table: student
Create Table: CREATE TABLE `student` (
`id` int() NOT NULL,
`name` char() NOT NULL,
`age` tinyint() NOT NULL DEFAULT '',
`dept` varchar() DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
row in set (0.00 sec) mysql> desc student; 查看表结构
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int() | NO | | NULL | |
| name | char() | NO | | NULL | |
| age | tinyint() | NO | | | |
| dept | varchar() | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+ mysql> show columns from student; 查看表结构 索引就像是书的目录,如果在字段上建立了索引,那么以索引列为查询条件时可以加快查询数据的速度。 创建主键索引 查询数据库,按主键索引是最快的,每个表只能有一个主键列,但是可以有多个普通索引列。主键列要求列的所有内容必须唯一,而索引列不要求内容必须唯一 mysql> create table student(
id int() not null AUTO_INCREMENT, #自增
name char() not null,
age tinyint() not null default '',
dept varchar() default null,
primary key(id),
KEY index_name(name) #创建索引
); 建表后通过alter命令增加主键索引(不建议这样干)
mysql> alter table student change id id int primary key auto_increment; mysql> alter table student drop index index_name; 删除索引 mysql> drop index index_dept on student; 删除索引 mysql> alter table student add index index_name(name); 添加普通索引 mysql> create index index_dept on student(dept()); 指定前n个字符创建索引 mysql> show index from student\G 查看索引 mysql> create index idn_name_dept on student(name,dept); 创建联合索引,允许列上有自己的索引 mysql> create index ind_name_dept on student(name(),dept()); 根据多个列前n个字符创建联合索引 mysql> create unique index uni_ind_name on student(name); 创建唯一索引 问题1:既然索引可以加快查询速度,那么就给所有的列建立索引吧? 解答:因为索引不但占用空间,更新数据库时还需要维护索引数据,因此,索引试一把双刃剑,并不是越多越好,例如:数十到几百行的小表上无需建立索引,写频繁,读少的业务要少建立索引 问题2:到底在哪些列上创建索引呢? 解答:select user,host from mysql.user where host=...,索引一定要创建在where后的条件列,而不是select后的选择数据的列,另外,要尽量选择在唯一值多的大表上建立索引。 基本条件: 、要在表的列上创建索引 、索引会加快查询速度,但是会影响更新的速度,因为要维护索引 、索引不是越多越好,要在频繁查询的where后的条件列上创建索引 、小表或唯一值极少的列上不建索引,要在大表以及不同的内容多的列上创建索引 help alter table

Mysql数据库的权限、索引基本操作的更多相关文章

  1. Mariadb/MySQL数据库单表查询基本操作及DML语句

    Mariadb/MySQL数据库单表查询基本操作及DML语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一数据库及表相关概述 1>.数据库操作 创建数据库: CREATE ...

  2. MySQL数据库授权与索引

    MySQL数据库授权与索引 目录 MySQL数据库授权与索引 一.数据库用户授权 1. 授予权限 2. 查看权限 3. 删除权限 4. 全部权限(all privileges) 二.MySQL索引 1 ...

  3. mysql数据库的权限体系介绍

    一.权限体系简介: MySQL的权限体系在实现上比较简单,相关权限信息主要存储在mysql.User.mysql.db.mysql.Host.mysql_table_priv和mysql.column ...

  4. MySQL<数据库和表的基本操作>

    数据库和表的基本操作 数据库基础知识 创建数据库 就是在数据库系统中划分一块存储数据的空间 CREATE DATABASE itcast; 查看数据库 SHOW CREATE DATABASE 数据库 ...

  5. mysql 数据库常见的一些基本操作 !详不详细你说了算!

    在日常应用中可能一时想不起来,所以有必要整理一份 指令相关的笔记,以是个人比较满意,也比较全面的一份笔记,希望能帮到你,适用初级小白,大神可略过! MYSQL常用命令: 数据备份与还原·注意:不要打分 ...

  6. MYSQL数据库学习六 索引的操作

    6.1 索引 由于数据存储在数据库表中,所以索引是创建在数据库表对象上的,由表中的一个或多个字段生成的键组成,这些键存储在数据结构(B-树或哈希表)中,通过索引可以快速有效地查找与键值相关联的字段.根 ...

  7. Mysql数据库账户权限设置

    1.修改mysql数据库的root密码: 修改 数据库.表名 SET password=加密(‘密码’) where user=’root’; UPDATE mysql.user SET passwo ...

  8. mysql数据库 事务和索引

    1.MySQL数据库特性:  原子性(atomidity) 一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一 ...

  9. MySQL数据库远程访问权限如何打开(两种方法)

    在我们使用mysql数据库时,有时我们的程序与数据库不在同一机器上,这时我们需要远程访问数据库.缺省状态下,mysql的用户没有远程访问的权限. 下面介绍两种方法,解决这一问题. 1.改表法 可能是你 ...

随机推荐

  1. gogs迁移

    windows->linux 之前gogs放在windows server2016中,需要迁移至linux docker中. 首先拉取gogs镜像 docker pull gogs/gogs 然 ...

  2. Python 添加模块

    一.方法1: 单文件模块直接把文件拷贝到 $python_dir/Lib 二.方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行:python setup.py in ...

  3. jdk代理

    接口: public interface IUserService { public void saveUser(String username,String password); public vo ...

  4. Hadoop实战:微博数据分析

    项目需求 自定义输入格式,将明星微博数据排序后按粉丝数 关注数 微博数 分别输出到不同文件中. 数据集 下面是部分数据,猛戳此链接下载完整数据集 数据格式: 明星   明星微博名称    粉丝数    ...

  5. vs2017通过snippet代码片断进行标准化注释

    我们在进行团队开发时,类的注释已经可以做到自定义了,详细看上篇文章<vs2017通过模块文件添加自定义注释>,而对于方法的注释,我们也需要完善一下,这里我们用到了“代码片断”插件,VS里有 ...

  6. eclipse配置android开发环境并搭建第一个helloWord工程

    一.搭建Android在eclipse下环境    一.JDK(不用安装  下载地址: http://www.xp510.com/xiazai/Application/program/23625.ht ...

  7. java 基础 04 循环结构 一维数组

    内容: (1)循环结构 (2)一维数组 1.循环结构 1.1for循环 (1)语法格式 for(初始化表达式1;条件表达式2;修改初始化表达式3){ 循环体; } (2)执行流程 执行初始化表达式 = ...

  8. CentOS6.x升级MySQL 5.1到5.6

    有一些虚拟机.云主机提供商仍然使用的是老版本的安装套件.预装的应用软件版本很低.有些IDC使用的云服务器,其中MySQL预装版本为老版本5.1.x.而较新的MySQL 5.6版本在性能.功能.安全性等 ...

  9. C# 发Domino邮件 报错误 Password or other security violation for database 的解决方案

    错误提示: Password or other security violation for database ******* 问题产生的描述: 之前C#发邮件是好的 加上了附件部分代码之后,出现了这 ...

  10. [转] eclipce使用vim 开启装逼模式

    原文:http://blog.csdn.net/fatal360/article/details/12321613 1.在eclipse中使用vi模式的插件Vrapper打开eclipse,在Help ...