Linux学习笔记(MySql操作)

今日是MySQL的第四篇,难度会稍微加大,加油!

Linux学习笔记(MySql操作)

忘记MySql密码:

编辑mysql主配置文件 my.cnf 在[mysqld]字段下添加参数 skip-grant

图片 1

重启数据库服务,这样就可以进入数据库不用授权了 mysql -uroot

修改相应用户密码 use mysql;

update user setpassword=password(‘密码‘) where user=’root’;

图片 2

flushprivileges; (刷新)

最后修改/etc/my.cnf 去掉 skip-grant, 重启mysql服务

 

查看root用户:

mysql -uroot -p密码 -e “use mysql;select user,host from user where
user=’root’;”

图片 3

 

mysq的命令历史:/root/.mysql_history

这样不安全,先删除这个文件,然后指向黑洞,就不会产生命令历史了

图片 4

 

mysql:

-h:加ip

-S:可以使用指定的sock文件

-P:加端口号

-u:加用户名

-p:加密码

show databases;:显示数据库

use database;:选择数据库

show tables;:查看数据库中的表

 

查看都有哪些库 show databases;
查看某个库的表 use db; show tables;
查看表的字段 desc tb;
查看建表语句 show create table tb;
当前是哪个用户 select user();
当前库 select database();
创建库 create database db1;
创建表 create table t1 (`id`int(4), `name` char(40));
查看数据库版本 select version();
查看mysql状态 show status;
修改mysql参数

show variables like ‘%timeout%’;

图片 5

set global table_open_cache= 128;

图片 6
查看mysql队列

showprocesslist; (相当于ps)

图片 7
创建普通用户并授权

grant all on *.* to user identified by ‘密码‘;

grant all on db1.* to ‘user’@’10.0.2.100’ identified by ‘密码‘;

grant all on db1.* to ‘user3’@’%’ identified by ‘密码‘;
更改密码

UPDATE mysql.user SET password=PASSWORD(“newpwd”)WHERE user=’username’
;
查询

select count(*) from mysql.user;

select * from mysql.db;

select * from mysql.db where host like ‘10.0.%’;
插入

update db1.t1 set name=’*****’ where id=1;
清空表

truncate table db1.t1;
删除表

drop table db1.t1;
删除数据库

drop database db1;
修复表

repair table tb1
[use_frm];(通过/data/www/数据库名/这个文件下面的文件修复)

mysql的备份和恢复:

备份 mysqldump -uroot -p db > 1.sql

-d:只是备份创建表的语句
恢复 mysql -uroot -p db < 1.sql
只备份一个表 mysqldump -uroot -p dbtb1 > 2.sql
备份时指定字符集mysqldump -uroot -p –default-character-set=utf8 db >
1.sql
恢复也指定字符集 mysql -uroot -p –default-character-set=utf8 db <
1.sql

 

忘记MySql密码:
编辑mysql主配置文件 my.cnf 在[mysqld]字段下添加参数 skip-grant
重启数据库服务,这样就可以进入数据…

Linux学习笔记(MySql操作)

忘记MySql密码:

编辑mysql主配置文件 my.cnf 在[mysqld]字段下添加参数 skip-grant

图片 8

重启数据库服务,这样就可以进入数据库不用授权了 mysql -uroot

修改相应用户密码 use mysql;

update user setpassword=password(‘密码‘) where user=’root’;

图片 9

flushprivileges; (刷新)

最后修改/etc/my.cnf 去掉 skip-grant, 重启mysql服务

 

查看root用户:

mysql -uroot -p密码 -e “use mysql;select user,host from user where
user=’root’;”

图片 10

 

mysq的命令历史:/root/.mysql_history

这样不安全,先删除这个文件,然后指向黑洞,就不会产生命令历史了

图片 11

 

mysql:

-h:加ip

-S:可以使用指定的sock文件

-P:加端口号

-u:加用户名

-p:加密码

show databases;:显示数据库

use database;:选择数据库

show tables;:查看数据库中的表

 

查看都有哪些库 show databases;
查看某个库的表 use db; show tables;
查看表的字段 desc tb;
查看建表语句 show create table tb;
当前是哪个用户 select user();
当前库 select database();
创建库 create database db1;
创建表 create table t1 (`id`int(4), `name` char(40));
查看数据库版本 select version();
查看mysql状态 show status;
修改mysql参数

show variables like ‘%timeout%’;

图片 12

set global table_open_cache= 128;

图片 13
查看mysql队列

showprocesslist; (相当于ps)

图片 14
创建普通用户并授权

grant all on *.* to user identified by ‘密码‘;

grant all on db1.* to ‘user’@’10.0.2.100’ identified by ‘密码‘;

grant all on db1.* to ‘user3’@’%’ identified by ‘密码‘;
更改密码

UPDATE mysql.user SET password=PASSWORD(“newpwd”)WHERE user=’username’
;
查询

select count(*) from mysql.user;

select * from mysql.db;

select * from mysql.db where host like ‘10.0.%’;
插入

update db1.t1 set name=’*****’ where id=1;
清空表

truncate table db1.t1;
删除表

drop table db1.t1;
删除数据库

drop database db1;
修复表

repair table tb1
[use_frm];(通过/data/www/数据库名/这个文件下面的文件修复)

mysql的备份和恢复:

备份 mysqldump -uroot -p db > 1.sql

-d:只是备份创建表的语句
恢复 mysql -uroot -p db < 1.sql
只备份一个表 mysqldump -uroot -p dbtb1 > 2.sql
备份时指定字符集mysqldump -uroot -p –default-character-set=utf8 db >
1.sql
恢复也指定字符集 mysql -uroot -p –default-character-set=utf8 db <
1.sql

忘记MySql密码:
编辑mysql主配置文件 my.cnf 在[mysqld]字段下添加参数 skip-grant
重启数据库服务,这样就可以进入数据…

开始吧!

1、外键(foreign  key)

  1.定义:让当前表字段的值在另一个表的范围内选择

  2.语法:

    foreign key(参考字段名)

    references 主表(被参考字段名)

    on   delete  级联动作

    on   update  级联动作 

  以上的语法连在一起看

  3.使用规则

    主表、从表字段数据类型要一致

    主表被参考字段:主键

  4.示例

    表1、缴费信息表(财务)

      id  姓名  班级  缴费金额

      1  唐伯虎  AD06  300

      2  点秋香  AD06  200

      3  祝枝山  AD06  100

    表2、学生信息表(班主任)

      id 姓名 缴费金额

      1 唐伯虎 300

      2 点秋香 260

*      3   xxx    xxx*

*      ………………..
*

*    创建表*

*    表1(主表)*

      create table jftab(
      id int primary key,
      name varchar(15),
      class char(5),
      money int
      );

    插入数据

      insert into jftab values
      (1,”唐伯虎”,”AD06″,300),
      (2,”点秋香”,”AD06″,260),
      (3,”祝枝山”,”AD06″,250);

    表2(从表)     

      create table bjtab(
      stu_id int,
      name varchar(15),
      money int,
      foreign key(stu_id) references jftab(id)
      on delete cascade
      on update cascade
      );

    插入数据

      insert into bjtab values

      (1,”唐伯虎”,300),(2,”点秋香”,260);

*  5、删除外键*

*    alter  table  表名  drop  frreign  key  外键名;*

*    查看外键:show  create  table  表名;*

*  6、级联动作*

*    cascade*

*    数据级联删除、更新(参考字段)*

*    restrict(默认)*

*    从表有相关联记录,不允许主表操作*

*    set  null*

*    主表删除、更新,从表相关联记录字段值为NULL*

*  7、已有表添加外键
*

*  alter  table  表名  add  for  foreeign  key(参考字段)  references 
主表(被参考字段)
*