春风十里不如你 —— Taozi - mysql https://www.xiongan.host/index.php/tag/mysql/ 【MySQL】主从复制介绍及配置 https://www.xiongan.host/index.php/archives/216/ 2023-06-14T20:42:42+08:00 MySQL的主从复制什么是mysql的主从复制?MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。主从原理三个步骤:在主库上把数据更改记录到二进制日志中(Binary Log)中,这些记录称为二进制日志事件。从库通过IO线程将主库上的日志复制到自己的中继日志(Relay Log)中。从库通过SQL线程读取中继日志中的事件,将其重放到自己数据上。主从形式(五个)包括一主一从、主主复制、一主多从、多主一从、连级复制mysql主从复制安装配置(一主一从)主机名ipmaster192.168.11.10(mysql5.7)node192.168.11.20(mysql5.7)数据库安装rpm方式(两台)下载rpm文件wget https://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm安装下载好的rpm文件yum -y localinstall mysql57-community-release-el7-10.noarch.rpm安装成功后会在/etc/yum.repos.d/下看到两个新增加的repo文件使用yum安装mysqlyum -y install mysql-community-server --nogpgcheck设置mysql服务开机自启#启动mysql服务 systemctl start mysqld #设置mysql开机启动 systemctl enable mysqld --now获取mysql服务的临时密码grep "password" /var/log/mysqld.log使用临时密码登录,进入后修改密码,并修改远程访问权限(也可以不用)mysql -uroot -p #输入密码 //修改密码 set global validate_password_policy=0; 修改密码策略 set global validate_password_length=1; 修改密码长度 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; 修改密码为123456 grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; 允许其他机器远程连接 flush privileges;主从配置在两台数据库中分别创建数据库--注意两台必须全部执行 create database tz;在主(master)服务器进行如下配置:#修改配置文件,执行以下命令打开mysql配置文件 vi /etc/my.cnf #在mysqld模块中添加如下配置信息 log-bin=master-bin #二进制文件名称 binlog-format=ROW #二进制日志格式,有row、statement、mixed三种格式,row指的是把改变的内 容复制过去,而不是把命令在从服务器上执行一遍,statement指的是在主服务器上执行的SQL语句,在从服 务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。mixed指的是默认采用基于语句的复 制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。 server-id=1 #要求各个服务器的id必须不一样 binlog-do-db=zq #同步的数据库名称配置从服务器登录主服务器的账号授权--授权操作 set global validate_password_policy=0; set global validate_password_length=1; grant replication slave on *.* to 'root'@'%' identified by '123456'; --刷新权限 flush privileges;从服务器配置(node节点)#修改配置文件,执行以下命令打开mysql配置文件 vi /etc/my.cnf #在mysqld模块中添加如下配置信息 log-bin=master-bin #二进制文件的名称 binlog-format=ROW #二进制文件的格式 server-id=2 #服务器的id重启主服务器的mysql服务#重启mysql服务 systemctl restart mysqld #登录mysql数据库 mysql -uroot -p #查看master的状态 show master status;重启从服务器(node)并进行相关配置#重启mysql服务 systemctl restart mysqld #登录mysql mysql -uroot -p #连接主服务器 change master to master_host='192.168.11.10',master_user='root',master_password='123456',master_port=3306,master_log_file='master-bin.000001',master_log_pos=154; #启动slave start slave; #查看slave的状态 show slave status\G(注意没有分号)验证主从数据库//主库中: mysql> use tz; mysql> create table user(id int,age int); mysql> insert into user values(1,1);从库中查看mysql> use tz; mysql> show tables; mysql> select * from user;注意:主库中插入数据,从库中会实现同步。从库中插入数据,主库不会实现同步。 【mysql】索引 https://www.xiongan.host/index.php/archives/188/ 2022-12-12T11:31:00+08:00 创建三个表:插入数据:插入数据:1.创建一张数据表test(id,name),同时给ID字段指定普通索引2.使用CREATE INDEX 语句为tz_emp表的ename列创建唯一索引索引名为uqidx3.使用alter table语句为tz_emp表列与sal列建立多列索引索引名为multidx,empno列按升序,sal降序4.查查看当查询tz_emp表中工资达到2000元的员工记录时是否使用了索引5.查看当查询tz_emp表中公号为7788的员工记录时是否使用了索引6.使用ALTER TALBE语句删除EMP表上的唯一索引7.使用DEOP INDEX语句删除EMP表上的多列索引 【mysql】入门+实践 https://www.xiongan.host/index.php/archives/49/ 2022-10-13T10:08:00+08:00 下载mysql安装教程查看百度即可进入mysql运行CMD(以管理员方式打开)mysql -uroot -p 数据库操作创建数据表mysql> CREATE TABLE info (-> name varchar(32) comment '名称',-> url char(50) comment '地址',-> tip varchar(255) comment '描述'-> );创建info的数据表 里面字段有名称,地址,描述,并设置有数据类型数据表操作mysql> INSERT INTO info(name,url,tip) VALUE('雄安host','https://www.xiongan.host','xiongan');