Liunx下mysql的安装以及基本操作

一.Linux下mysql的安装:

1.参考此链接,此链接非常详细:https://blog.csdn.net/y353027520dx/article/details/77621468

 

二.Linux下mysql的基本操作:

1.数据库的创建并指定字符集

  create database if not exists test_db default charset utf8 collate utf8_general_ci;

说明:a. charset utf8:字符集utf8

   b.collate utf8_general_ci:排序规则 utf8_general_ci

2.数据库的删除

  drop database test_db;

3.数据库的切换:

  use test_db;

4.数据库表的创建:

  create table customers(id int not null auto_increment, name char(20) not null, address varchar(50), city varchar(50), age int, ex varchar(100) default 'my-data', primary key(id)) engine = InnoDB default charset=utf8;

说明:char为不可变字符集,char(20) 代表在内存中占的地址就是20

   varchar为可变字符集,varchar(50)代表内存中根据实际占用内存动态可变

   创建表的的编码:charset=utf8

   查看表结构:desc customers;

         show create table customers;

5.数据库表的删除:

  drop table customers;

6.数据库表的数据插入:

  insert into customers(name,adress,city,age) values('zhangsan','地球上','陆地',18)

 7.数据库表的数据删除:

  delete from customers

  truncate customers

说明:delete 删除数据,不会删除标记,可以通过binlog进行恢复数据

   truncate 删除数据,会清除标记,数据不可恢复,会重置id

   查看最后插入数据的id:select last_insert_id();

8.数据库的表数据修改:

  update customers set name='ee' where id=1;

9.修改数据库的表名:

  rename table customers to cs;

10.更新数据库表的结构:

  增加一列:alter table cs add col varchar(50);

查询:select *  from cs;

  删除一列:alter table cs drop column col;

11.数据库的约束:

  a.primary key :主键约束,不能为空,不可重复

  b.unique:唯一约束,不能有重复值

  c.default:默认值

  d.not null :非空约束

  e.foreign key:外键约束

举个例子设计带有外键的表:

  create table cs_1(cs_id is not null ,area varchar(50) unique,constraint f_k foreign key(cs_id) references cs(id) );

外键将2张表关联起来

删除外键:alter table cs_1 drop foreign key f_k;

添加外键:alter table cs_1 constraint f_k foreign key(cs_id) references cs(id) ;

修改外键为级联操作数据(之前创建的外键,默认不可修改删除):alter table cs_1 constraint f_k foreign key(cs_id) references cs(id) on update casecade on delete casecade;

 

三.其他:

1.数据库的3层编码:

  a.数据库的编码

  b.数据库表的编码

  c.数据库表的字段编码

2.查看对应的字符集:

  a.查看数据库的字符集:show create dababase test_db;

  b.查看表的字符集:show full fields from cs; 或 show full columns from cs; 查询结果可看字段的字符集

3.修改字符集:

  修改表及字段的字符集:alter table cs convert to character set utf8 collate utf8_general_ci;

  修改表的字符集:alter table cs default character set utf8 collate utf8_general_ci;

  修改字段的字符集:alter table cs change ex exinfo varchar(120) character set utf8 collate utf8_general_ci;

4.binlog(mysql的操作日志,可用于同步数据,可恢复删除的数据):

  a.打开binlog:vim /etc/mysql/mysql.cnf.d/mysqld.cnf,打开注释:log_bin ,需要重启mysql服务,service mysql restart

  b.查看log的状态,show variables like "%log_bin%";

  c.查看log_bin日志路径:cd /var/log/mysql

  d.查看mysql-bin.000001的具体内容:mysqlbinlog mysql-bin.000001

  或则在mysql下:show binlog events in 'mysql-bin.000001'

   也可在mysql工具里查看:show binlog events in 'mysql-bin.000001'

  e.恢复数据,反解binlog将所有Event_type 为query的sql,全部重新执行,排除delete或truncate的语句

用例:alibaba 的canal :https://github.com/alibaba/canal

posted @ 2019-02-14 18:01  元宝_5  阅读(164)  评论(0编辑  收藏  举报