• mysql数据库搭建


    机器:
    [ 192.168.12.90   3306/3307] bje-qa-mysql-01   /100G    /home 178G  /data 6.3T                        
    [ 192.168.12.91   3306/3307] bje-qa-mysql-02   /100G    /home 178G  /data 6.3T                        
    [ 192.168.12.92   3306] bje-qa-mysql-03        /100G    /home 178G  /data 6.3T                    
    [ 192.168.12.93   3306] bje-qa-mysql-04        /100G    /home 178G  /data 6.3T                   
    [ 192.168.12.94   3306] bje-qa-mysql-05        /100G    /home 178G  /data 6.3T                    
    [ 192.168.12.95   3306] bje-qa-mysql-06        /100G    /home 178G  /data 6.3T


    192.168.65.15:6015端口
    ---------------------------------
    一、搭建单个实例
    1.安装依赖包(#已安装#)
    yum install cmake make gcc gcc-c++ biso ncurses ncurses-devel

    2.手动创建创建数据目录    
    cd /data/
    mkdir mysql3307
    cd mysql3307/
    mkdir data etc log binlog innodata innolog relaylog
    ll
    cd log/
    touch mysqld.err


    3.新建mysql用户组和用户,并改变新建数据目录的属组和属主:
    groupadd mysql   (#已创建#)
    useradd -r -g mysql mysql  (#已创建#)
    cd /data/
    chown -R mysql:mysql /data/mysql3307

    4、下载、解压安装包
    mkdir -p /data/soft
    cd /data/soft
    wget https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.58.tar.gz(#已下载#)
    解压:
    tar -zxf mysql-5.5.58-linux-glibc2.12-x86_64.tar.gz(#已解压#)

    5、在解压目录中进行cmake编译:
    cd /data/soft/mysql-5.5.58/
    cmake .
    -DCMAKE_INSTALL_PREFIX=/data/mysql3307/
    -DMYSQL_DATADIR=/data/mysql3307/data
    -DSYSCONFDIR=/data/mysql3307/etc
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_READLINE=1
    -DMYSQL_UNIX_ADDR=/data/mysql3307/mysql.sock
    -DMYSQL_TCP_PORT=3307
    -DENABLED_LOCAL_INFILE=1
    -DWITH_PARTITION_STORAGE_ENGINE=1
    -DEXTRA_CHARSETS=all
    -DDEFAULT_CHARSET=utf8
    -DDEFAULT_COLLATION=utf8_general_ci


    6.make&&make install
    make -j8
    make install

    5.配置文件的修改
    vi /data/mysql3307/etc/my3307.cnf
    #注意:使用线上配置文件,则cnf文件中出现的目录和文件,除了mysqld.pid和mysql.sock(这两个文件在服务启动过程中会自动生成)文件之外,都要事先创建好。
        
    6.初始化系统表(在安装目录中进行)
    cd /data/mysql3307/
    scripts/mysql_install_db --user=mysql --datadir=/data/mysql3307/data/
    #出现两个OK即为成功

    7.使用配置文件启动服务
    cd /data/mysql3307/bin
    ./mysqld_safe --defaults-file=/data/mysql3307/etc/my3307.cnf &
    ps -ef|grep mysql
    #查看服务起来则安装成功

    8、安装完成MySQL后第一时间删除(!=)root或者host不是localhost的用户:
    ./mysql   登录
    select user,host,password from mysql.user;
    delete from mysql.user where user not in('root','localhost');
    再次检查一下用户:
    select user,host,password from mysql.user;

    9、为mysql数据库创建root密码和新用户名密码
    给root用户设置密码:
    update mysql.user set password=password('root123') where user='root';
    flush privileges;
    验证:
    exit
    mysql -uroot -proot123 --socket=/data/mysql3307/mysql.sock
     
    创建新用户:
    grant all privileges on *.* to 'tester'@'%' identified by 'nopass.2';
    flush privileges;                                                       
    select user,host,password from mysql.user;
    验证:
    exit
    mysql -utester -pnopass.2 --socket=/data/mysql3307/mysql.sock

    ##命令
    ps -ef|grep mysqld查看mysql进程





    二、搭建主从
    第一步:从库也先搭建单个实例,注意配置文件中的server_id要设置不同
    (同时)
    主库上创建主从同步账号:
    mysql -uroot -proot123 --socket=/data/mysql3307/mysql.sock
    grant replication slave on *.* to 'repl'@'%' identified by 'repl123';
    flush privileges;
    验证:
    mysql -urepl -prepl123 --socket=/data/mysql3307/mysql.sock

    查看主库当前的二进制日志pos:
    mysql -uroot -proot123 --socket=/data/mysql3307/mysql.sock
    mysql> show master status;
    +----------+----------+--------------+------------------+
    | File     | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +----------+----------+--------------+------------------+
    | 0.000001 |     1122 |              |                  |
    +----------+----------+--------------+------------------+
    1 row in set (0.00 sec)

    从库上:
    CHANGE MASTER TO
      MASTER_HOST='192.168.12.90',
      MASTER_USER='repl',
      MASTER_PASSWORD='repl123',
      MASTER_PORT=3307,
      MASTER_LOG_FILE='0.000001',
      MASTER_LOG_POS=1122,
      MASTER_CONNECT_RETRY=60;

    start slave;
    show slave status G;
    ##在这里主要是看:
    Slave_IO_Running=Yes
    Slave_SQL_Running=Yes
    Second_Behind_Master=0



    三、导出导入数据(以192.168.65.15:6015为例)
    1、查看库:
    mysql -u'tester' -S /data/mysql6015/mysql.sock  -pnopass.2  -P 6015

    2、导出数据:
    [备份前查看一下数据大小]
    cd /data/mysql6015/data
    du -sh
    查看不了可以用sudo su查看

    *备份所有数据库:(可选)
    time mysqldump -utester -pnopass.2 -A--single-transaction --socket=/data/mysql6015/mysql.sock -P6015 > /tmp/Backup01.sql

    备份指定数据库:
    time mysqldump -utester -pnopass.2 --databases hotel_product_single hotel_confirm hotel_cashout hotel_schedule --single-transaction --socket=/data/mysql6015/mysql.sock -P6015 > /tmp/Backup01.sql

    例如:
    hotel_product_single
    hotel_confirm
    hotel_cashout
    hotel_schedule


    3、拷贝备份文件:
    scp /tmp/Backup01.sql tester@192.168.12.90:/tmp/

    4、导入数据:
    目标实例上:
    ll /tmp
    mysql -utester -pnopass.2 --socket=/data/mysql3306/mysql.sock
    source /tmp/Backup01.sql

    ##主库配置文件
    [mysqld]
    datadir=/data/mysql3307/data
    socket=/data/mysql3307/mysql.sock
    pid-file=/data/mysql3307/mysqld.pid
    general_log=1
    general_log_file=/data/mysql3307/log/mysql.log
    log-error=/data/mysql3307/log/mysqld.err
    log-bin=/data/mysql3307/binlog/mysql-bin.log
    log-bin-index=/data/mysql3307/binlog/mysql-bin.index
    log_bin_trust_function_creators=1
    log_bin=0
    read_only=0   ##主库为0,关闭##
    server_id=330790
    
    expire_logs_days=7
    binlog_format=mixed
    max_binlog_size=1024MB
    user=mysql
    default-storage-engine=innodb
    port=3307
    character_set_server=utf8
    skip_name_resolve
    wait_timeout=3600
    
    ####################################
    #InnoDB
    ####################################
    innodb_data_home_dir=/data/mysql3307/innodata  # [InnoDB] 
    innodb_file_per_table=1           # [InnoDB]独立表空间开关
    innodb_data_file_path=ibdata1:64M:autoextend # [InnoDB]共享表空间
    innodb_flush_log_at_trx_commit=1      # [InnoDB] 
    innodb_log_group_home_dir=/data/mysql3307/innolog   # [InnoDB Log] 
    innodb_log_file_size=512M                      # [InnoDB Log] 
    innodb_log_files_in_group=3                  # [InnoDB Log] 
    innodb_lock_wait_timeout=100
    #innodb_flush_method=O_DIRECT   #Direct IO
    #innodb_sync_spin_loops=0
    #innodb_io_capacity=2000
    innodb_file_io_threads=4
    innodb_max_dirty_pages_pct=80
    innodb_thread_concurrency=16
    
    
    ####################################
    #Replication
    ####################################
    relay-log=/data/mysql3307/relaylog/mysql-relay-bin.log
    relay-log-index=/data/mysql3307/relaylog/mysql-relay-bin.index
    ##must be multi-lines,don't seperated by comma
    #replicate-do-db =
    #replicate-do-db =
    #replicate-ignore-db = mysql
    #replicate-ignore-db = test
    #slave-skip-errors = all       # use [mk-slave-restart]
    #log-slave-updates=1
    #report-host=10.91.64.3
    #report-port=6231
    slave-net-timeout = 300
    relay_log_purge=0
    
    ####################################
    #Slow Query
    ####################################
    slow-query-log=1
    slow-query-log-file=/data/mysql3307/log/slow.log
    long-query-time=0.5
    
    ####################################
    #Global Memory
    ####################################
    max_connections = 2020
    max_user_connections=1900
    max_connect_errors=10000
    thread_concurrency = 8
    max_allowed_packet = 48M
    max_binlog_cache_size=256M
    query_cache_limit=2M
    max_tmp_tables=256
    interactive_timeout=300
    
    binlog_cache_size = 2M
    table_cache = 1024 
    thread_cache_size = 1200
    query_cache_size = 32M
    key_buffer = 16M    # [MyISAM]
    innodb_log_buffer_size = 8M   # [InnoDB]
    innodb_buffer_pool_size= 2048M    # [InnoDB,一般设置成机器内存的50%~80%,测试机1GB]   
    
    ####################################
    #Thread Private
    ####################################
    sort_buffer_size = 2M
    thread_stack = 256K
    join_buffer_size = 4M
    read_buffer_size = 4M 
    read_rnd_buffer_size = 4M
    net_buffer_length = 16384 
    bulk_insert_buffer_size = 4M  
    tmp_table_size = 256M 
    max_heap_table_size = 16M  
    
    
    [mysql]
    prompt=u@h:p>
    pager=less -SFX
    
    [client]
    socket = /data/mysql3307/mysql.sock
    
    ##从库配置文件
    [mysqld]
    datadir=/data/mysql3307/data
    socket=/data/mysql3307/mysql.sock
    pid-file=/data/mysql3307/mysqld.pid
    general_log=1
    general_log_file=/data/mysql3307/log/mysql.log
    log-error=/data/mysql3307/log/mysqld.err
    log-bin=/data/mysql3307/binlog/mysql-bin.log
    log-bin-index=/data/mysql3307/binlog/mysql-bin.index
    log_bin_trust_function_creators=1
    log_bin=0
    read_only=1    ##从库为1,开启##
    server_id=330791
    
    expire_logs_days=7
    binlog_format=mixed
    max_binlog_size=1024MB
    user=mysql
    default-storage-engine=innodb
    port=3307
    character_set_server=utf8
    skip_name_resolve
    wait_timeout=3600
    
    ####################################
    #InnoDB
    ####################################
    innodb_data_home_dir=/data/mysql3307/innodata  # [InnoDB] 
    innodb_file_per_table=1           # [InnoDB]独立表空间开关
    innodb_data_file_path=ibdata1:64M:autoextend # [InnoDB]共享表空间
    innodb_flush_log_at_trx_commit=1      # [InnoDB] 
    innodb_log_group_home_dir=/data/mysql3307/innolog   # [InnoDB Log] 
    innodb_log_file_size=512M                      # [InnoDB Log] 
    innodb_log_files_in_group=3                  # [InnoDB Log] 
    innodb_lock_wait_timeout=100
    #innodb_flush_method=O_DIRECT   #Direct IO
    #innodb_sync_spin_loops=0
    #innodb_io_capacity=2000
    innodb_file_io_threads=4
    innodb_max_dirty_pages_pct=80
    innodb_thread_concurrency=16
    
    
    ####################################
    #Replication
    ####################################
    relay-log=/data/mysql3307/relaylog/mysql-relay-bin.log
    relay-log-index=/data/mysql3307/relaylog/mysql-relay-bin.index
    ##must be multi-lines,don't seperated by comma
    #replicate-do-db =
    #replicate-do-db =
    #replicate-ignore-db = mysql
    #replicate-ignore-db = test
    #slave-skip-errors = all       # use [mk-slave-restart]
    #log-slave-updates=1
    #report-host=10.91.64.3
    #report-port=6231
    slave-net-timeout = 300
    relay_log_purge=0
    
    ####################################
    #Slow Query
    ####################################
    slow-query-log=1
    slow-query-log-file=/data/mysql3307/log/slow.log
    long-query-time=0.5
    
    ####################################
    #Global Memory
    ####################################
    max_connections = 2020
    max_user_connections=1900
    max_connect_errors=10000
    thread_concurrency = 8
    max_allowed_packet = 48M
    max_binlog_cache_size=256M
    query_cache_limit=2M
    max_tmp_tables=256
    interactive_timeout=300
    
    binlog_cache_size = 2M
    table_cache = 1024 
    thread_cache_size = 1200
    query_cache_size = 32M
    key_buffer = 16M    # [MyISAM]
    innodb_log_buffer_size = 8M   # [InnoDB]
    innodb_buffer_pool_size= 2048M    # [InnoDB,一般设置成机器内存的50%~80%,测试机1GB]   
    
    ####################################
    #Thread Private
    ####################################
    sort_buffer_size = 2M
    thread_stack = 256K
    join_buffer_size = 4M
    read_buffer_size = 4M 
    read_rnd_buffer_size = 4M
    net_buffer_length = 16384 
    bulk_insert_buffer_size = 4M  
    tmp_table_size = 256M 
    max_heap_table_size = 16M  
    
    
    [mysql]
    prompt=u@h:p>
    pager=less -SFX
    
    [client]
    socket = /data/mysql3307/mysql.sock
    
  • 相关阅读:
    python
    python
    python
    python
    python
    python
    python
    python
    [ThinkPHP] 从一个表中获得栏目对应的ID,从另一个表获得属于这些栏目的文章
    [thinkPHP] buildSql可以查看tp CURD操作对应的SQL
  • 原文地址:https://www.cnblogs.com/yuer011/p/8072734.html
Copyright © 2020-2023  润新知