Mysql

  1. MySQL数据库基本操作
    1. 1、MySQL常见版本
    2. 2、MySQL安装部署
    3. 3、MySQL管理命令
    4. 4、Mysql主从备份
    5. 5、Mysql主主备份
    6. 6、Mysql一主多从
    7. 7、Mysql读写分离

MySQL数据库基本操作

1、MySQL常见版本

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

2、MySQL安装部署

  • mysql:数据库客户端
  • mysql-server:数据库服务器端
服务:mysqld
端口:3306
主配置文件:/etc/my.cnf
初始化脚本: mysql_install_db
启动命令: mysqld_safe
数据目录 : /var/lib/mysql
套接字文件:/var/lib/mysql/mysql.sock
#当意外关闭数据库时,再开启时假如开启不了,找到这个,删除再启动
进程文件:/var/run/mysqld/mysqld.pid

3、MySQL管理命令

a.创建数据库用户

create user 用户名@‘%’ identified by ‘密码’;  #%代表任意远程终端都能使用这个用户连接数据库

b.用户登录数据库

mysql -u用户名 -p库名 -h远程数据库的ip地址 -P(大写)端口

c.用户自己更改自己的密码

set password=password(‘新密码’);

d.root用户为其他用户更改密码

set password for 用户名@‘%’=password(‘新密码’);

e.root找回自己的密码

#关闭数据库
vim /etc/my.cnf 添加skip-grant-tables
#启动数据库,空密码登录并修改密码
update mysql.user set password=password(‘新密码’) where user='root’;
删除skip-grant-tables,重启数据库验证新密码

f.数据库于表的操作

#创建数据库与表

create database 数据库名;            #创建数据库
show databases;                     #查询所有数据库
use 数据库名;                        #进入数据库
create table 表名 (字段名 字段类型,字段名 字段类型)  #创建表
describe 表名;                      #查看表结构

#往表里插入数据

insert into 表名 (字段1,字段2,字段3) values (对应字段1,对应字段2,对应字段3),(对应字段1,对应字段2,对应字段3)等等;  #插入数据
insert into 表1名 (字段1,字段2) select 表2的字段1,表2的字段2 from 表2;  #将表2的值复制到表1

#删除表和记录

drop table 表名;                    #删除表
show table;                        #查询所有表
delete from 表名 where 字段=数值;    #删除数据表字段对应的记录
delete from 表名 where 字段 between 数值1 and 数值2;   #删除数据表字段在数值1和数值2之间的
注意:删除库和表用drop,删除记录用delete

#修改表与数据

update 表名 set 要修改的字段1=数值1 where 字段2=数值2  #修改字段2值为数值2的字段1的值为数值1
alter table 表名1 rename 表名2;                     #修改表1为表2
alter table 表名 modify 字段名 字段类型;               #修改字段类型
alter table 表名 add 字段名 字段类型;               #增加字段,默认添加在末尾
alter table 表名 add 字段名 字段类型 first;         #添加字段到第一行
alter table 表名 add 字段名 字段类型 after 字段;     #添加字段到指定字段后

#删除字段

alter table 表名 drop 字段名;                       #删除字段

例子:

#创建表
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为主键

g.mysql权限管理

grant select,insert,update,delete(all) on 库名.表名 to 用户名@”%” identified by “密码″;  #创建用户并授权
grant select,insert,update,delete on 库名.表名 to 用户名@”%”   #给已经创建的用户授权

revoke drop, delete on 数据库.数据表 from 用户名@‘%’; #取消用户的权限
show grants for 用户@‘%’;   #查询用户的权限

h.刷新数据库

flush privileges;

i.备份和还原

备份:
mysqldump -u 用户名 -p 数据库名 > /备份路径/备份文件名(备份整个数据库)

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


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

mysql-binlog日志备份:

二进制日志(log-bin日志):所有对数据库状态更改的操作(create、drop、update等)

修改my.cnf配置文件开启binlog日志记录功能
vim /etc/my.cnf
log-bin=mysql-bin#启动二进制日志
按时间还原:

--start-datetime

--stop-datetime

格式: mysqlbinlog --start-datetime ‘YY-MM-DD HH:MM:SS’  --stop-datetime ‘YY-MM-DDHH:MM:SS‘ 二进制文件 | mysql -u root -p

4、Mysql主从备份

1、开启mysql二进制日志

vim /etc/my.cnf
添加log-bin=mysql-bin
server-id=数值

2、在主服务器上授权,从服务器保存授权的信息

change master to
master_user='asd',
master password='123456',
master host='主服务器ip',
master_log_file='mysql-bin.000003'

3、从服务器会产生授权信息

4、开启从服务器

然后就可以在主服务器上创建文件创建表,在从服务器上可以看到

5、Mysql主主备份

1、首先要按照上面的配置配置主从

2、主从都要配置

3、先配置1为主,2为从

4、再配置2为主,1为从

5、1和2都执行start slave(互为主从)

6、Mysql一主多从

相当于主从,只不过多配置个从

7、Mysql读写分离

读写分离要使用到数据库中间件Amoeba(中国人陈思儒研发)

1、先参照上面配置主从服务器

2、安装jdk,安装amoeba

3、配置amoeba

4、复制一份模板,给从使用

5、修改amoeba启动脚本

/usrlocal/amoeba/bin/amoeba

6、后台运行amoeba


文章内容仅用于作者学习使用,如果内容侵犯您的权益,请立即联系作者删除,作者不承担任何法律责任。

×

喜欢就点赞,疼爱就打赏