xml地图|网站地图|网站标签 [设为首页] [加入收藏]
来自 新濠国际登录平台 2019-10-06 21:29 的文章
当前位置: 新濠国际登录平台 > 新濠国际登录平台 > 正文

启动和关闭数据库,将root用户名修改为system

 

一、基本查询,忘记密码

完整的创建数据库例子:

原文: 【培训】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;

 

用户管理:

创建用户 create user test

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

 

Grant方式创建用户 grant select@’yyzc’.* to test

删除用户drop user test@10.133.12.138

 

Grant方式创建用户: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的名为Tom的成绩为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; 

本文由新濠国际登录平台发布于新濠国际登录平台,转载请注明出处:启动和关闭数据库,将root用户名修改为system

关键词: