金沙国际官网_金沙国际平台登录

因为这个金沙国际官网_金沙国际平台登录网站与很多的大型澳门赌场都有合作,金沙国际官网_金沙国际平台登录尽职尽责,高效执行,保持好奇心,不断学习,追求卓越,点击进入金沙国际官网_金沙国际平台登录马上体验吧,所以现在也正式地开始了营业。

您的位置:金沙国际官网 > 数据库 > 数据定义语言,python中mysql主从同步配置的方法

数据定义语言,python中mysql主从同步配置的方法

发布时间:2019-11-26 19:18编辑:数据库浏览(145)

    1)安装mysql

    ubuntu中安装一台mysql了,docker安装另外一台mysql

    获取mysql的镜像,主从同步尽量保证多台mysql的版本相同,我的ubuntu中存在的mysql是5.7.22版本,所以获取5.7.22版本的镜像为例:

    docker image pull mysql:5.7.22
    或
    docker load -i mysql_docker_5722.tar
    

     

    运行mysql docker镜像,需要在宿主机中建立文件目录用于mysql容器保存数据和读取配置文件。

    在家目录中(/home/python)中创建目录,将mysql的配置文件放到此目录中

    cd ~
    mkdir mysql_slave
    cd mysql_slave
    mkdir data
    cp /etc/mysql/mysql.conf.d ./
    

     

    将docker运行的mysql作为slave来运行,开启前需要修改配置文件。

    编辑 ~/mysql_slave/mysql.conf.d/mysqld.cnf 文件,修改

    port  =  8306
    general_log  = 0
    server-id  = 2
    

     

    让此台mysql运行在8306端口上,且mysql编号为2

    创建docker容器

    docker run --name mysql-slave -e MYSQL_ROOT_PASSWORD=mysql -d --network=host -v /home/python/mysql_slave/data:/var/lib/mysql -v /home/python/mysql_slave/mysql.conf.d:/etc/mysql/mysql.conf.d  mysql:5.7.22
    

     

    • MYSQL_ROOT_PASSWORD 是创建mysql root用户的密码

    测试,在ubuntu中使用mysql命令尝试连接docker容器中的mysql

    mysql -uroot -pmysql -h 127.0.0.1 --port=8306
    

     

    SQL RIGHT JOIN 关键字

    RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。

    DDL(Data Definition languages)数据定义语言,这些语句主要定义了不同的数据段,数据表、列、索引等操作,主要关键字有create、drop、alter。
    一、 数据库的操作
    1.数据库的创建
    CREATE DATABASE IF NOT EXISTS chens;
    2.数据库的修改
    CREATE DATABASES BOOKS TO 新库名;
    注意:一般不更改库的名字,因为这样修改的话可能会使库中的数据变化。
    3.更改数据库的字符集
    ALTER DATABASE chens character set gbk;
    4.删除库
    DROP DATABASE IF EXISTS chens;

    2)备份主服务器原有数据到从服务器

    如果在设置主从同步前,主服务器上已有大量数据,可以使用mysqldump进行数据备份并还原到从服务器以实现数据的复制。

    在主服务器Ubuntu上进行备份,执行命令:

    mysqldump -uroot -pmysql --all-databases --lock-all-tables > ~/master_db.sql
    

    图片 1

    • -u :用户名

    • -p :示密码

    • --all-databases :导出所有数据库

    • --lock-all-tables :执行操作时锁住所有表,防止操作时有数据修改

    • ~/master_db.sql :导出的备份数据(sql文件)位置,可自己指定

    在docker容器中导入数据

    mysql -uroot -pmysql -h127.0.0.1 --port=8306 < ~/master_db.sql
    

     

    RIGHT JOIN 关键字语法

    SELECT column_name(s)
    FROM table_name1
    RIGHT JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name
    

    注释:在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。

    二、 表的管理
    1.表的创建
    Create table 表名(
    列名 类型[长度] 约束1 约束2 ……,
    列名 类型[长度] 约束1 约束2 ……,

    列名 类型[长度] 约束1 约束2 ……,
    [表级约束]
    ) [engine=Innodb default charset=utf-8 存储引擎 和 字符集];
    创建表 book
    Create table book(
    id int,
    bName varchar(20),
    price double,
    authorId INT,
    rDate datetime
    );
    图片 2
    图片 3
    2.表的修改
    语法:
    Alter table 表名 add | drop | modify | change column 列名 [列类型 约束];
    ①修改列名
    Alter table book change column rDate rQi datetime;
    图片 4
    ②修改列的类型和约束
    Alter table book modify column rQi TIMESTAMP;
    图片 5
    ③修改添加新列
    Alter table book add column chen varchar(20);
    注意:添加新列到指定位置
    first 和 after,first 表示添加列到表的第一列,after 表示添加在某个列之后。
    语法:alter table book add column 字段名 类型 约束 [first | after 列名]
    默认添加到最后一列。
    图片 6
    ④删除列
    Alter table book drop column chen;
    图片 7
    ⑤修改表名
    Alter table book rename to book_chen;
    图片 8
    图片 9
    3.表的删除
    Drop table if exists book_chen;
    Show tables;
    图片 10
    4.表的复制
    表1是已存在的表,表2不存在的表
    ①只复制表的结构
    Create table 表2 like 表1;
    图片 11
    ②复制数据+内容
    Create table 表2 like select * from 表1;
    ③复制部分数据
    Create table 表2 like select * from 表1 where 条件;
    ④仅仅复制某些字段
    Create table 表2 like select 字段1 ,字段2 from 表1 where 0;

    本文由金沙国际官网发布于数据库,转载请注明出处:数据定义语言,python中mysql主从同步配置的方法

    关键词: