一 、基本查询,忘记密码

完全的创制数据库例子:

原文: 【培训】MySQL

yum安装mysql:yum -y install mysql*- 或者 yum -y install mysql*

运转数据库服务:/etc/init.d/mysqld start 或然 service mysqld start

 

先河安全设置:

只保留一条允许root用户从本地连接的记录   

delete from mysql.user where (user,host) not in (select
‘root’,’localhost’);

将root用户名修改为system

update mysql.user set user=’system’,password=password(‘newpass’) where
user=’root’;

flush privileges;   #mysql 新装置用户或改变密码后需用flush
privileges刷新MySQL的系统权限相关表,否则会合世拒绝访问#

 

show databases;

create database yyzc;

show create database yyzc;

drop database yyzc;

mysql基本命令使用,MySQL基础操作。 

用户管理:

开创用户 create user test

修改密码set password for test=password(‘test123’)

 

格兰特情势创制用户 grant select@’yyzc’.* to test

删去用户drop user test@10.133.12.138

 

格兰特情势创立用户:grant select@yyzc.* to test;

权力级别:

Mysql权限从大的粒度上分为5类:全局、数据库、表、列、程序

全局:grant create on *.* to test;

数据库:grant create on yyzc.* to test;

 

翻看和撤回权限: 

查看权限show grants for test;

收回权限revoke create on *.* from test;

裁撤全体权限revoke all privileges, grant option from test

 

 

insert into命令用于向表中插入数据。

insert into命令格式:insert into <表名>
[(<字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n
)];

譬如:往表
MyClass中插入两条记下,那两条记下表示:编号为1的名为汤姆的战绩为96.45,编号为2
的名为Joan 的实绩为82.99,编号为3 的名为Wang 的成就为96.5。
    mysql> insert into MyClass
values(1,’Tom’,96.45),(2,’Joan’,82.99), (2,’Wang’, 96.59);

小心:insert into每一次只好向表中插入一条记下。

 

 

 

  1. create database yyzc; show database yyzc;z drop database yyzc;
  2. show engines; show variables like ‘have %’; Alter table user
    engine=myisam
  3. mysql -h localhost -u root -p; enter passwork
  4. 制造、修改和删除表

创建表

1). create table example_0(id int,name varchar(20),sex boolean);

2). create table example_1 (stu_id int primary key, stu_name
varchar(20),stu_sex boolean);

3). create table example_2 (stu_id int,course_id int grade
float,primary key(stu_id, course_id));

4). create table example_3 (id int primary key, stu_id int course_id
int, Constraint c_fk foreign key(stu_id,course_id) references
example_2(stu_id,course_id));

5). create table example_4 (id int not null primary key, name
varchar(20) not null, stu_id int, Constraint d_fk foreign key(stu_id)
references example_1(stu_id) );

6). create table example_5(id int primary key, stu_id int unique, name
varchar(20) not null);

7). create table example_6(id int primary key, Auto_increment, stu_id
int unique, name varchar(20) not null);

8). create table example_7(id int primary key, Auto_increment, stu_id
int unique, name varchar(20) not null English varchar(20) default
‘zero’, Math float default 0, Computer Float default 0); desc user show
create table user

修改字段

1). alter table example rename user

2). alter table example modify name varchar(20)

3). alter table example change stu_name name varchar(20)

4). alter table example change stu_sex sex int(2)

扩展字段

5). alter table user add phone varchar(20)

6). alter table user add age int(4) not null

7). alter table user add num int(4) primary key first

8). alter table user add address varchar(40) not null after phone

删去字段

9). alter table user drop id

10). alter table user modify name varchar(20) first

11). alter table user modify sex tinyint(1) after age

删除表外键约束

alter table example drop foregin key c_fk
删除表

1). dorp table example

2). alter table example drop foreign key d_fk, drop table example 

 

 

 

备份:mysqldump -uroot -p yyzc department >
/home/admin/yyzc_backup.sql

恢复:mysql -uroot -p yyzc < /home/admin/yyzc_backup.sql

 

备份全部数据库

mysqldump -uroot -p –all-database > all.sql

备份数据库test

mysqldump -uroot -p test > test.sql

备份数据库test下的表emp:

mysqldump -uroot -p test emp > emp.sql

备份数据库test下的表emp和dept:

mysqldumo -uroot -p test emp dept > emp_dept.sql

备份数据test下的有所表为逗号分割的文书,备份到/tmp:

mysqldump -uroot -T /tmp test emp –fields-terminated-by ‘,’

more emp.txt

mysqldumo的选项很多,额能够使用mysqldump -help查看支持;

 

完全恢复生机:

晌午九点,备份数据库:

mysqldump -uroot -p -l -F test>test.dmp
  (-l表示给拥有表加读锁,-F代表生成二个新的日记文件)

9点半备份甘休,插入新的多少:

mysql> insert into emp values(5,’z5′);

mysql>insert into emp values(6,’z6′);

10点,数据库突然故障,数据无法访问,须求还原备份:

mysql -uroot -p tset < test.dmp

采纳mysqlbinlog复苏自mysqldump备份以来的BINLOG:

mysqlbinlog localhost-bin.000015 | mysql -u root -p test

 

依据时间点过来

基于地方苏醒

常用命令

指令作用

指令

查看/查询

show,select,desc

创建

create

删除

drop,delete,truncate

切换/进入

use

添加记录

insert

 

查询

>create database db_test default character set utf8 collate
utf8_general_ci;

查询类

查看数据库列表

show databases;

翻看当前数据库登入的是极度用户

select user();

查看当前数据库有哪些表

show tables;

翻看test数据库的编码类型

show create database test;

查看test表的项目

show create table test;

翻开test表的概念音信

desc test;

 

>show databases like ‘mysql’;

>use db_test;

创建类

创设数据库

create database db1;

始建三个utf8mb4品类的数据库

create database db2 DEFAULT CHARACTER
SET utf8mb4;

创建表

CREATE TABLE students (id int
UNSIGNED NOT NULL PRIMARY KEY,name VARCHAR(20)NOT NULL,age tinyint
UNSIGNED);

为emp表添加记录(有
id,name,sex,age字段)

insert into emp (id,name,sex,age)
values(1,’xiaoming’,’m’,30);

>show databases like ‘%my%’; //查询包罗my的databases

>CREATE TABLE tb_user(

修改删除

修改emp表的内容(第几行第多少个字段)

update emp set age=18 where
id=4;

 

去除数据库

drop database db1;

 

删除test表

drop table test

除去emp表中的记录

delete from emp where
name=’lvdou’;

删除emp整个表记录

delete from emp;

备考:这些命令倘若删除上万条记下非常的慢(因为他记下日志,能够选择日志还原)

truncate
table emp;这几个命令删除上万条记下尤其快

因为她不记录日志

清空emp表

truncate table emp;

 

批量实施sql程序

mysql < hellodb_innodb.sql

备考:也可不进入数据库的图景下查看数据库

mysql
-e ‘show databases’

 

 

安装密码

>id INT(10) NOT NULL AUTO_INCREMENT COMMENT”主键”,

#mysqladmin -u root password ‘passwd’;

>name VARCHAR(20) NOT NULL COMMENT”姓名”,

修改密码

>age INT(3) DEFAULT 0,

#mysqladmin -u root -p’passwd’ password ‘newpasswd’;

>PRIMARY KEY(id)

>set password=password(‘passwd’);

>) COMMENT”用户表”;

忘记root密码

其余有关命令:

#mysqld_safe –skip-grant-tables&//跳过认证表

1,运营和倒闭数据库

>update mysql.user set password=password(“passwd”) where
user=’root’;//修改密码

>net start mysql 

>flush privileges//刷新用户

>net stop mysql 

重启

之所以命令必须是单排的首先个,并且以分行结尾:

二 、数据库操作

All text commands must be first on line and end with “;” 

>create database default_db;//创设数据库

2,遵照用户名密码,登录数据库

>show create database default_db;//查看创设数量库暗中认可字符集

>mysql -uroot -p; 

>create database default_db default character set
utf8;//创建utf8字符集数据库

假诺数据库没有密码则动用

> alter database default_db character set
utf8;//修改已存在数据库字符集

>mysql -uroot; 

>show databases;//查看数据库

3,查看在此时此刻服务器中有个别许个数据库

>drop database default_db;//删除数据库

>show databases; 

>use default_db;使用数据库

4,删除有个别数据库

查看数据库用户

>drop database databaseName; 

>select user,host from mysql.user;

>commit; 

>select databbase();查看当前所属数据库

5,创设数据库

>show tables;查看表

>CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE
utf8_general_ci;

>system whoami   查看当前用户,system跳出mysql查看重临  //Oracl 用
host 代替system

转移数据库的字符编码

>show tables from default_db;查看钦定库中的表

ALTERDATABASEdb_nameDEFAULTCHARACTERSETutf8COLLATEutf8_general_ci;

剔除用户

6,选取选择某些数据库

>drop user ‘root’@’localhost’;

>use databaseName; 

>delete from mysql.user where user=’root’ and host=’passwd’; 

7,查看数据库中有微微的表

>flush privileges; //刷新

 >show tables; 

授权

8,创建表

>create user ‘root’@’localhost’ identified by ‘mypass’;

>create table tableName( 

>grant all on db1.* to ‘root’@’localhost’;

 id int(10) NOT NULL AUTO_INCREMENT,PRIMARY KEY(id),

也可写成如下一条语句

name varchar(20)

>grant all on db1.* to ‘root’@’localhost’identified by ‘mypass’;

); 

回收权限

9,突显本数据库的全体表

>revoke insert on *.* from root@localhost;//回收insert权限

>show tables;

读写分用户授权

10,呈现某多个表

主库授权

>show create table tableName;

>grant select,insert,update,delete on ‘blog’.* to ‘blog’@’10.0.0.%’
identifed by ‘passwd’;

11,彰显表结构

从库授权

>describe tableName;   (可能简写: desc tableName;)

>grant select on ‘blog’.* to ‘blog’@’10.0.0.%’ identifed by
‘passwd’;

12,向表中进入数据并查阅

三、表操作

>insert into tableName(id,name…) values(‘1′,’admin’,…); 

字段类型

>select * from tableName; 

int

13,导入.sql文件(文件所在路径是F:\file.sql 

double

>source F:/file.sql; 

date

14,删除表

char

>drop table tableName; 

varchar

15,删除表中的有所数据,不过表结构还是留存

>desc default_db; //查看表结构

>delete from tableName; 

> create table stu(name char(3),age int);//创建表

16,更新表中的数据,倘若没有where,则将影响全体的记录

> insert into stu(name,age) values (“pater”,23);//插入表

>update tableName set name=’administrator’ where id=’1′; 

> insert into stu(name,age) values(“jem”,13) ,(“tom”,31);//插入四个

17,查看服务器版本和眼明天子

备份

>select version(),current_date; 

# mysqldump -uroot -p’passwd’ -B default_db >
/tmp/default_db_bak.sql

>select version(); 

-A 备份全数表

 >select now(); 

查看

18,把mysql作为1个粗略的总计器

select * from test limit 0,2; limit内定查看起止

select pi(); 

排序

>select pi()*10; 

> select * from stu order by age desc; //查询stu表以age段降序排列

19,查看用户

> select * from stu order by age asc limit 2 ;
//查询stu表以age升序排列显示前行

>select user(); 

规格查询

20,使用load 

> select * from stu where age > 30 and name=’tom’
;查找stu表age大于30并且name是tom的字段,也能够用or

>load data local infile filePath into table tableName; 

留神:字符型要单引号

一、连接MYSQL

跨表查询

格式: mysql -h主机地址-u用户名-p用户密码

> select stu1.id,stu.name from stu1,stu where stu1.name=stu.name;
//查询stu1的name等于stu的name,显示stu1的id和stu的name

1、例1:

>update test set name=’aaa’ where name=’xiaohong’;//把小红改成aaa

连日来到本机上的MYSQL

删除

第三在打开DOS窗口,

>delete from test where id >3;删除test表中id>3的

接下来进入目录mysqlbin,

清空表

再键入命令mysql -uroot -p,

> truncate table newstu;

回车后提醒您输密码,固然刚安装好MYSQL,超级用户root是一向不密码的,故间接回车即可进入到MYSQL中了,MYSQL的唤醒符是:mysql> 

添加字段

2、例2:

> alter table stu add sex char(4);//增加sex列

连天到长途主机上的MYSQL。假使远程主机的IP为:110.110.110.110,用户名为root,密码为

> alter table stu add sex char(4) after name;//增加sex列在name列后

abcd123。则键入以下命令: 

> alter table stu1 drop id;//删除sut1的id字段

mysql -h110.110.110.110 -uroot -pabcd123 

改变表名

(注:u与root能够毫无加空格,其它也一律) 

> rename table stu1 to newstu;

3、退出MYSQL命令: exit (回车) 

删除表

贰 、修改密码。

>drop table name;

格式:mysqladmin -u用户名-p旧密码password新密码

壹 、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令

 mysqladmin -uroot -password ab12 

注:

因为开首时root没有密码,所以-p旧密码一项就能够回顾了。

② 、例2:再将root的密码改为djg345。

 mysqladmin -uroot -pab12 password djg345 

三 、扩张新用户。

(注意:

和地点分裂,下边包车型大巴因为是MYSQL环境中的命令,所在此以前边都带多个分店作为命令截止符) 

格式:grant select on数据库.* to用户名@登录主机identified by \”密码\” 

例一 、增添3个用户test1密码为abc,让她得以在别的主机上登录,并对持有数据库有查

询、插入、修改、删除的权杖。首先用以root用户连入MYSQL,然后键入以下命令: 

grant select,insert,update,delete on *.* to test1@\”%\” Identified by \”abc\”; 

例1扩大的用户是丰富生死攸关的,你想如有些人清楚test1的密码,那么她就能够在internet

上的别的一台微型总结机上登录你的mysql数据库并对你的数据足以盛气凌人了,化解办法见例2。

例2、

日增二个用户test2密码为abc,让她只幸亏localhost上登录,并能够对数据库mydb进行询问、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机)

,那样用户即选择知道test2的密码,他也无从从internet上一贯访问数据库,只可以通过MYSQL主机上的web页来访问了。

grant select,insert,update,delete on mydb.* to test2@localhost identified by \”abc\”; 

万一您不想test2有密码,能够再打三个发令将密码消掉。

grant select,insert,update,delete on mydb.* to test2@localhost identified by \”\”; 

在上篇我们讲了登录、扩展用户、密码更改等题材。下篇大家来探望MYSQL中关于数据库方面包车型地铁操作。

注意:

您不可能不首首先登场录到MYSQL中,以下操作都是在MYSQL的唤起符下

alter命令

alter add命令用来增添表的字段。

alter add命令格式:alter table 表名 add字段 类型 其他;

譬如说,在表MyClass中添加了四个字段passtest,类型为int(4),暗中同意值为0:

mysql> alter table MyClass add passtest int(4) default ‘0’;

添加七个字段:   mysql> alter
table Personadd ageint,add addressvarchar(11); 

删除多少个字段:   mysql> alter table Person drop column age,drop
column address;

修改字段的诠释:  mysql> ALTE汉兰达 TABLE `student` MODIFY COLUMN `id`
COMMENT ‘学号’;

1) 加索引

mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);

例子: mysql> alter table employee add index emp_name (name);

2) 加主关键字的目录

mysql> alter table 表名 add primary key (字段名);

例子: mysql> alter table employee add primary key(id);

3) 加唯一限制条件的目录

mysql> alter table 表名 add unique 索引名 (字段名);

例子: mysql> alter table employee add unique emp_name2(cardnumber);

4) 删除某些索引

mysql> alter table 表名 drop index 索引名;

例子: mysql>alter table employee drop index emp_name;

5) 扩展字段

mysql> ALTER TABLE table_name ADD field_name field_type;

6) 修改原字段名称及项目

mysql> ALTER TABLE table_name CHANGE old_field_name
new_field_name field_type;

7) 删除字段

MySQL ALTER TABLE table_name DROP field_name;

MySQL添加用户、删除用户与授权

MySql中充分用户,新建数据库,用户授权,删除用户,修改密码(注意每行后面都跟个;表示二个命令语句截止):

1.新建用户

  1.1 登录MYSQL:

  @>mysql -u root -p

@>密码

  1.2 创立用户:

mysql> insert into mysql.user(Host,User,Password)
values(“localhost”,”test”,password(“1234”));

如此那般就创建了一个名为:test 密码为:1234 的用户。

小心:此处的”localhost”,是指该用户只幸好当地登录,没办法在其余一台机械上长途登录。假设想远程登录的话,将”localhost”改为”%”,表示在别的一台电脑上都得以登录。也足以内定某台机器能够长距离登录。

  1.3 然后登录一下:

  mysql>exit;

  @>mysql -u test -p

@>输入密码

mysql>登录成功

澳门金沙国际 ,2.为用户授权

授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by
“密码”;

  2.1 登录MYSQL(有ROOT权限),那里以ROOT身份登录:

  @>mysql -u root -p

@>密码

  2.2 首先为用户创制几个数据库(testDB):

  mysql>create database testDB;

  2.3 授权test用户全体testDB数据库的富有权力(有些数据库的具备权力):

   mysql>grant all privileges on testDB.* to test@localhost
identified by ‘1234’;

mysql>flush privileges;//刷新系统权限表

格式:grant权限 on 数据库.* to 用户名@登录主机 identified by “密码”;

  2.4 假如想内定部分权力给一用户,能够如此来写:

  mysql>grant select,update on testDB.* to test@localhost
identified by ‘1234’;

mysql>flush privileges; //刷新类别权限表

  2.5 授权test用户全部有着数据库的有些权力:   

mysql>grant select,delete,update,create,drop on *.* to test@”%”
identified by “1234”;

//test用户对具有数据库都有select,delete,update,create,drop 权限。

 //@”%”
表示对持有非本土主机授权,不蕴涵localhost。(localhost地址设为127.0.0.1,固然设为真实的地面地址,不驾驭是或不是足以,没有证实。)

//对localhost授权:加上一句grant all privileges on testDB.* to
test@localhost identified by ‘1234’;即可。

3. 刨除用户

  @>mysql -u root -p

@>密码

  mysql>Delete FROM user Where User=’test’ and Host=’localhost’;

  mysql>flush privileges;

mysql>drop database testDB; //删除用户的数据库

去除账户及权限:>drop user 用户名@’%’;

>drop user 用户名@ localhost; 

4. 修改钦定用户密码

   @>mysql -u root -p

 @>密码

mysql>update mysql.user set password=password(‘新密码’) where
User=”test” and Host=”localhost”;

   mysql>flush privileges;

5. 列出富有数据库

  mysql>show database;

6. 切换数据库

mysql>use ‘数据库名’;

7. 列出全部表

  mysql>show tables;

8. 来得数据表结构

mysql>describe 表名;

9. 去除数据库和数据表

mysql>drop database 数据库名;

mysql>drop table 数据表名;

相关文章