mysql数据-基础操作

1、mysql 常见版本

  1. MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
  2. MySQL Enterprise Edition 企业版本,需付费,可以试用30天。
  3. MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。
  4. MySQL Cluster CGE 高级集群版,需付费

2、MySQL 安装部署

MySQL:mysql 客户端
MySQL-server:MySQL 服务端程序

源代编译安装:

编译工具:configure、cmake、make

数据库常用的配置选项

-DCMAKE_INSTALL_PREFIX=/PREFIX		----指定安装路径(默认的就是/usr/local/mysql)

-DMYSQL_DATADIR=/data/mysql 		----mysql的数据文件路径

-DSYSCONFDIR=/etc    				----配置文件路径

-DWITH_INNOBASE_STORAGE_ENGINE=1    ----使用INNOBASE存储引擎

-DWITH_READLINE=1      				----支持批量导入mysql数据

-DWITH_SSL=system     				----mysql支持ssl

-DWITH_ZLIB=system      			----支持压缩存储

-DMYSQL_TCP_PORT=3306   			----默认端口3306
	
-DENABLED_LOCAL_INFILE=1   			----启用加载本地数据
	
-DMYSQL_USER=mysql  				----指定mysql运行用户

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock  	----默认套接字文件路径

-DEXTRA_CHARSETS=all  				----是否支持额外的字符集

-DDEFAULT_CHARSET=utf8         		----默认编码机制

-DWITH_DEBUG=0       				----DEBUG功能设置

1 常见资料:

服务:mysqld
端口:3306
主配置文件:/etc/my.cnf
初始化脚本:mysql_install_db
启动命令:mysqld_safe
数据目录:/var/lib/mysql
套接字文件:/var/lib/mysql/mysql.sock
进程文件:/var/run/mysqld/mysqld.pid

2 MySQL登录及退出命令:

设置密码:mysqladmin-uroot password ‘123456’
登录:mysql-u 用户名-p密码-P 端口-S 套接字文件
-p 用户密码
-h 登陆位置(主机名或ip地址)
-P 端口号(3306改了就不是了)
-S 套接字文件(/var/lib/mysql/mysql.sock)
退出命令:exit或ctrl+d

3、MySQL 管理命令

1.  创建登陆用户
mysql>create user zs@'%' identified by '123'; # %:所有人都可远程登陆终端

2.  测试用户登陆
#yum -y install mysql
#mysql -uzhangsan -p123 -h 192.168.154.10


3. 更改当前用户密码
mysql>set password=password('123123');


4. root用户更改其他用户密码
mysql>set password for dal@'%'=password('12321');


5. root找回自己的密码
#修改配置文件添加skip…tables并重启mysql服务
#vim /etc/my.cnf
#添加一行
skip-grant-tables
[root@client ~]$ systemctl restart mysqld
[root@client ~]$ mysql -uroot
MariaDB [(none)]> update mysql.user set password=password('123') where user='root';
#MariaDB [(none)]> set password=password('1123'); #这样也是可以更改密码
删除skip…tables,并重启

6. 创建查询数据库
MariaDB [(none)]> create database abc; #创建数据库
MariaDB [(none)]> show databases; #查询数据库 


7. 创建数据表;
MariaDB [(none)]> use abc; #进入数据库
MariaDB [(abc)]> create table a1 (id int,name char(10)); #创建数据表
MariaDB [(abc)]> describe a1; #查看表结构(字段)
复杂一点的
MariaDB [(abc)]> Mysql>create table a2 (
	->id int unsigned not null auto_increment,	#字段要求为正数、且自增长、主键
	->name char(30) not null default ‘’,	#字符型长度30字节,默认值为空格
	->age int not null default 0,	#字段默认值为0
	->primary key (id));	#设置id为主键
MariaDB	[abc]> describe a2;

8. 插入数据
MariaDB [abc]>insert into a2 (id,name,age) values (1,‘zhangsan’,21)#指明插入字段和数据
MariaDB [abc]>select * from a2;		#查看表内容
MariaDB [abc]>insert into a2 values (2,'lisi',20);	#按顺序插入指定字段
MariaDB [abc]>insert into a2 values (3,'wangwu');	#未声明年龄
MariaDB [abc]>insert into a2 values (4,'wanger',19),(5,'sun',25);	#插入多条数据


9. 将表a2的内容复制到表a1
MariaDB [abc]>insert into a1 (id,name) select id,name from a2;	#查看a2表,并写入a1;
MariaDB [abc]>select * from a1;

10.  删除数据库
MariaDB [abc]> drop database abc;
MariaDB [abc]> show databases;

11. 删除数据表
MariaDB [abc]> drop table a1;	#删除表a1
MariaDB [abc]> show tables;		#查看当前数据库的表

12. 删除表里的数据记录
MariaDB [abc]> delete from a2 where id=3;	#删除id=3的记录
MariaDB [abc]> delete from a2 wherebetween 23 and 25;		#删除年龄在23-25之间的

注:库和表的删除用drop,记录删除用delete

13. 修改表中数据
MariaDB [abc]> update a2 set age=21 where id=2;

14. 修改数据表的名称
MariaDB [abc]> alter table a2 rename a1;

15. 修改数据表的字段类型
MariaDB [abc]> describe a1;	#查看字段类型
MariaDB [abc]> alter table a1 modify name char(50);
MariaDB [abc]> describe a1;

16. 修改数据表的字字段类型详情
MariaDB [abc]> describe a1;
MariaDB [abc]> altertable a1 change name username char(50) not null default ‘’;
MariaDB [abc]> describe a1;

17. 添加字段
MariaDB [abc]> describe a1;
MariaDB [abc]> alter table a1 add time datetime;
MariaDB [abc]> describe a1;
#默认添加位置是末尾
MariaDB [abc]> alter table a1 add birthday year first;		#添加字段到第一列
MariaDB [abc]> alter table a1 add sex nchar(1) after id;	#添加到指定字段后

18. 删除字段
MariaDB [abc]>alter table a1 drop birthday;

19. MySQL 用户授权
授权用户全部权限
MariaDB [abc]>select user from mysql.user;
MariaDB [abc]>grant all on aa.a1 to zs@‘%’;	#给已存在用户授权
MariaDB [abc]>>grant all on aa.a1 to abc@‘%’identified by ‘123456’;	#创建用户并授权
取消abc用户的数据库、表、表中数据的权限
MariaDB [abc]>revoke drop,delete on aa.a1 from abc@‘%’;		#取消删除权限(等录abc测试)
MariaDB [abc]>show grants for abc@‘%’;		#查看指定用户权限
MariaDB [abc]>show grants for atguigu@‘%’;	

三、备份和还原

1 mysqldump备份:

备份:
mysqldump -u 用户名-p 数据库名> /备份路径/备份文件名(备份整个数据库)
mysqldump -u 用户名-p 数据库名表名> /备份路径/备份文件名(备份数据表)
备份多个库:–databases 库1,库2
备份所有库:–all-databases
备份多个表:库名表1表2
还原:mysql数据库< 备份文件
注意:还原时,若导入的是某表,请指定导入到哪一个库中

2 mysqlhotcopy 备份:

备份:mysqlhotcopy --flushlog -u=’用户’ -p=’密码’ --regexp=正则备份目录
还原:cp -a 备份目录数据目录(/var/lib/mysql)

mysqldump和mysqlhotcopy示例:
Mysql备份和还原

把数据库aa 备份到/root目录下
mysqldump –uroot –p aa > ~/aa.sql

模拟数据库aa丢失(删除数据库aa)
Mysql>drop database aa;

通过aa.sql文件还原(指定导入到哪个库中)
mysql –uroot –p test < aa.sql

备份多个数据库(--databases)
mysqldump–uroot –p --databases aa test> abc.sql

还原(先模拟丢失)
mysql –uroot –p < abc.sql

备份有规则的数据库
Mysql>create database a1;

#连续创建三个a开头的数据库
mysqlhotcopy --flushlog –u=‘root’–p=‘456’--regexp=^a

还原(先模拟丢失)
Mysql>drop database a1;

#顺序删除a开头的数据库
cp –a /mnt/* /var/lib/mysql/#复制产生的文件到数据库目录下

#登录数据库查看即可

3 mysql-binlog日志备份:

二进制日志(log-bin日志):所有对数据库状态更改的操作(create、drop、update等)
修改my.cnf配置文件开启binlog日志记录功能

#vim /etc/my.cnf
log-bin=mysql-bin #启动二进制日志
按时间还原:
–start-datetime
–stop-datetime
格式:mysql
binlog --start-datetime ‘YY-MM-DD HH:MM:SS’ --stop-datetime ‘YY-MM-DDHH:MM:SS’ 二进制日志 | mysql-uroot -p

按文件大小还原:
–start-position
–stop-position

3.1 mysql-binlog日志备份示例:
开启二进制日志
在这里插入图片描述
查看二进制日志文件
在这里插入图片描述
按时间还原:
如果数据库中的bb库被删,需要还原
在这里插入图片描述
查看二进制日志内容
在这里插入图片描述
还原并查看
mysqlbinlog --start-datetime=‘2018-09-11 14:24:00’–stop-datetime=‘2018-09-11 14:28:00’
mysql-bin.000006 | mysql –uroot –p123123
注:所选时间段一定要完整包含所有动作(可以在原来基础上稍微增加点时间)
按文件大小还原:还原到bb库被删除的数据状态
1.查看bb库被删除前后的文件大小

在这里插入图片描述
还原并查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值