zoukankan      html  css  js  c++  java
  • MySQL基础操作——转

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

    基于时间点恢复

    基于位置恢复

  • 相关阅读:
    如何将本地代码上传到GitHub
    《剑指offer》JavaScript版19-21题
    《剑指offer》JavaScript版16-18题
    《剑指offer》JavaScript版13-15题
    蘑菇街(前端1面)
    《二十二》观后感
    前端面试题(2)
    《深入理解ES6》之Promise
    HDU 4939 Stupid Tower Defense (2014 Multi-University Training Contest 7)
    HDU 4940 Destroy Transportation system(2014 Multi-University Training Contest 7)
  • 原文地址:https://www.cnblogs.com/acmwangpeng/p/5684543.html
Copyright © 2011-2022 走看看