zoukankan      html  css  js  c++  java
  • Mysql5.7.6安装和主从配置手册

    Mysql5.7.6+ 安装手册

    linux server版本
     
    2. 检查库文件是否存在,如有删除
        检查:rpm -qa | grep mysql
        删除: rpm -e mysql-libs-5.1.52.x86_64 --nodeps
    3. 检查mysql组和用户是否存在,如无创建
       检查: cat /etc/group | grep mysql
                  cat /etc/passwd | grep mysql
       创建: groupadd mysql
                   useradd -r -g mysql mysql  //useradd -r参数表示mysql用户是系统用户,不可用于登录系统
    4. 解压包,更改所属的组和用户(安装路径:/usr/local/mysql)
        $ tar -xzvf mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz 
        $ mv mysql-5.7.12-linux-glibc2.5-x86_64 mysql 
        $ chown -R mysql:mysql mysql/
        $ cd  /usr/local/mysql/support-files/
        $  vim /etc/my.cnf
          ---------------------------------------my.cnf 模板---------------------------------------------
    [client]
    default-character-set=utf8mb4
    port    = 3306
    socket  = /usr/local/mysqld/mysqld.sock #用于本地连接的socket套接字
    [mysql]
    #这个配置段设置启动MySQL服务的条件;在这种情况下,no-auto-rehash确保这个服务启动得比较快。
    no-auto-rehash
    [mysqld]
    #user = mysql
    port = 3306
    basedir=/usr/local/mysql/      #使用该目录作为根目录(安装目录)
    datadir=/usr/local/mysql/data/ #数据文件存放的目录
    tmpdir = /usr/local/mysqld/tmp/ #MySQL存放临时文件的目录    
    socket =/usr/local/mysqld/mysqld.sock     #为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
    explicit_defaults_for_timestamp=true  #明确时间戳默认null方式
    character_set_server=utf8mb4  #服务端默认编码(数据库级别)
    collation_server =utf8mb4_bin #服务端默认的比对规则,排序规则
    default-storage-engine = InnoDB #默认存储引擎
    #Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    log-warnings = 1 #将警告打印输出到错误 log 文件
    [mysqld_safe]
    pid-file = /usr/local/mysqld/mysqld.pid
    socket = /usr/local/mysqld/mysqld.sock
    slow_query_log = 1 #开启慢查询
    long-query-time = 10 #漫查询阀值
    log_long_format #在慢速日志中记录更多的信息
    slow_query_log_file =  /usr/local/mysqld/log/slow_sql.log #慢查询路径
    general_log = 0  #将所有到达MySQL Server的SQL语句记录下来,默认关闭
    general_log_file = /usr/local/mysqld/log/mysql_sql.log
    log-error   = /usr/local/mysqld/log/mysqld.err #错误日志路径
     
    4.创建my.cnf 配置的路径文件或文件夹并授权
         $ mkdir 文件夹
         $ chown -R mysql:mysql  *
         $ chmod 755 *
    5.将mysqld服务加入开机自启动项
        $ cp mysql.server /etc/init.d/mysqld
        $ chmod +x /etc/init.d/mysqld
        $ chkconfig --add mysqld
        $ chkconfig --list mysqld
    6.安装和初始化数据库记录初始密码
       $ bin/mysqld  --initialize   --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    7.数据库启动/停止/重启
       $ service mysqld start
       $ service mysqld stop
       $ service mysqld restart
    8.初始化密码
      $ bin/mysql -u root -p 初始密码
       mysql>set password=password("root");
       mysql> use mysql;
       mysql> update user set authentication_string=password('新密码') where user='用户';
    9.修改密码添加远程访问权限
       mysql> grant all privileges on *.* to'root' @'%' identified by 'root';
       mysql> flush privileges;
       mysql> quit;
    9.关闭防火墙
      $ systemctl disable firewalld.service
     
    window server 版本安装
     
    版本: mysql-5.7.22-winx64.zip 
    解压路径: D:Program Filesmysql-5.7.22-winx64
    配置环境变量
    解压路径下新建my.ini 文件
    [client]
    default-character-set=utf8
    [mysqld]
    # 端口
    port=3306
    # 设置mysql的安装目录
    basedir=D:Program Filesmysql-5.7.22-winx64
    # 设置mysql数据库的数据的存放目录
    datadir=D:Program Filesmysql-5.7.22-winx64data
    # 允许最大连接数  
    max_connections=200
    # 服务端使用的字符集默认为8比特编码的latin1字符集  
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎  
    default-storage-engine=INNODB
    系统管理员启动cmd
    mysqld --initialize
    mysqld -install
    net start mysql
    第一次登录
    net stop mysql
    mysqld --defaults-file="D:Program Filesmysql-5.7.22-winx64my.ini" --console --skip-grant-tables
    设置密码
    mysql>use mysql;
    mysql>update user set authentication_string=password(“root“) where user=”root”;
    mysql>flush privileges;
    客服端连接重新登陆
    mysql>set password=password('root');

    设置用户
    #查看用户权限
    mysql>select user,host from mysql.user;
    mysql>show grants for'username'@'host';
    #创建用户
    mysql>create user 'username'@'host' identified by 'password';
    #授予用户权限
    mysql>grant privileges on databasename.tablename to 'username'@'host';
    mysql>grant privileges on databasename.tablename to 'username'@'host' with grant option;
    privileges:用户的操作权限,如select,insert,update等,如果要授予所的权限则使用all。
    databasename:数据库名
    tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
    with grant option 用户有授权权限。
    #设置修改密码
    mysql>set password for 'username'@'host' = password('newpassword');
    mysql>set password = password("newpassword");
    #撤销用户权限
    mysql>revoke privilege on databasename.tablename from 'username'@'host';
    mysql>update mysql.user set host='192.168.16.%' where user='username' and host='host';
    #删除用户
    mysql>drop user 'username'@'host';
    #生效用户权限
    mysql>flush privileges;

    Mysql5.7.6+ 主从配置手册


    master数据库 /etc/my.cnf 配置
    [client]
    default-character-set=utf8mb4
    port    = 3306
    socket  = /usr/local/mysqld/mysqld.sock #用于本地连接的socket套接字
    [mysql]
    #这个配置段设置启动MySQL服务的条件;在这种情况下,no-auto-rehash确保这个服务启动得比较快。
    no-auto-rehash
    [mysqld]
    #user = mysql
    port = 3306
    basedir=/usr/local/mysql/      #使用该目录作为根目录(安装目录)
    datadir=/usr/local/mysql/data/ #数据文件存放的目录
    tmpdir = /usr/local/mysqld/tmp/ #MySQL存放临时文件的目录    
    socket =/usr/local/mysqld/mysqld.sock     #为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
    explicit_defaults_for_timestamp=true  #明确时间戳默认null方式
    character_set_server=utf8mb4  #服务端默认编码(数据库级别)
    collation_server =utf8mb4_bin #服务端默认的比对规则,排序规则
    default-storage-engine = InnoDB #默认存储引擎
    server-id=1 #设置server-id
    log-bin=mysql-bin #开启二进制日志
    binlog_format=mixed #复制模式
    # 不同步哪些数据库  
    binlog-ignore-db = mysql  
    binlog-ignore-db = test  
    binlog-ignore-db = information_schema  
    # 只同步哪些数据库,除此之外,其他不同步  
    binlog-do-db = game
    #Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    log-warnings = 1 #将警告打印输出到错误 log 文件
    [mysqld_safe]
    pid-file = /usr/local/mysqld/mysqld.pid
    socket = /usr/local/mysqld/mysqld.sock
    slow_query_log = 1 #开启慢查询
    long-query-time = 10 #漫查询阀值
    log_long_format #在慢速日志中记录更多的信息
    slow_query_log_file =  /usr/local/mysqld/log/slow_sql.log #慢查询路径
    general_log = 0  #将所有到达MySQL Server的SQL语句记录下来,默认关闭
    general_log_file = /usr/local/mysqld/log/mysql_sql.log
    log-error   = /usr/local/mysqld/log/mysqld.err #错误日志路径
     
    slave 数据库 /etc/my.cnf 配置
    [client]
    default-character-set=utf8mb4
    port    = 3306
    socket  = /usr/local/mysqld/mysqld.sock #用于本地连接的socket套接字
    [mysql]
    #这个配置段设置启动MySQL服务的条件;在这种情况下,no-auto-rehash确保这个服务启动得比较快。
    no-auto-rehash
    [mysqld]
    #user = mysql
    port = 3306
    basedir=/usr/local/mysql/      #使用该目录作为根目录(安装目录)
    datadir=/usr/local/mysql/data/ #数据文件存放的目录
    tmpdir = /usr/local/mysqld/tmp/ #MySQL存放临时文件的目录    
    socket =/usr/local/mysqld/mysqld.sock     #为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
    explicit_defaults_for_timestamp=true  #明确时间戳默认null方式
    character_set_server=utf8mb4  #服务端默认编码(数据库级别)
    collation_server =utf8mb4_bin #服务端默认的比对规则,排序规则
    default-storage-engine = InnoDB #默认存储引擎
    server-id=2 #设置server-id
    #Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    log-warnings = 1 #将警告打印输出到错误 log 文件
    [mysqld_safe]
    pid-file = /usr/local/mysqld/mysqld.pid
    socket = /usr/local/mysqld/mysqld.sock
    slow_query_log = 1 #开启慢查询
    long-query-time = 10 #漫查询阀值
    log_long_format #在慢速日志中记录更多的信息
    slow_query_log_file =  /usr/local/mysqld/log/slow_sql.log #慢查询路径
    general_log = 0  #将所有到达MySQL Server的SQL语句记录下来,默认关闭
    general_log_file = /usr/local/mysqld/log/mysql_sql.log
    log-error   = /usr/local/mysqld/log/mysqld.err #错误日志路径

    master 创建授权用户
     mysql>CREATE USER 'prdrepl'@'192.168.16.%' IDENTIFIED BY 'root';
     mysql> use mysql;
     mysql> update user set authentication_string=password('reduser') where user='reduser';
    用户赋予 REPLICATION SLAVE 权限
     mysql>GRANT REPLICATION SLAVE ON *.* TO 'prdrepl'@'192.168.16.%';
     mysql> flush privileges;
    查看用户
    mysql>select user,host from mysql.user;
    查看 master 状态
    mysql>show master status;
    //这里的 mysql-bin.000001和 Position 值 slave 配置时需要用到。

    手动同步master数据
    •  master 中现有的数据信息导出
    mysqldump -u root -p --all-databases --master-data > all.sql
    //命令失败 设置软连接
    find / -name mysql -print
    ln -fs /usr/local/mysql/bin/mysqldump /usr/bin
    ln -fs /usr/local/mysql/bin/mysql /usr/bin
    • 将 all.sql 发送到 slave 服务器 tmp 目录下
    scp all.sql root@192.168.16.14:/tmp
    • slave 导入 master 数据
    mysql>stop slave
    mysql -uroot -p < all.sql

    使 slave 与 master 建立连接
    mysql> change master to
            -> master_host='192.168.16.16',
            -> master_user='prdrepl',
            -> master_password='prdrepl',
           -> master_port=3306,
            -> master_log_file='mysql-bin.000001',
           -> master_log_pos=623;
    启动备份
    mysql>start slave;
    查看备份是否启动成功
    mysql>show slave status G
     Slave_IO_Running: Yes
     Slave_SQL_Running: Yes

    设置只读属性
    mysql>set global read_only=1 //1只读,0读写
    mysql>show global variables like "%read_only%";
    mysql>flush tables with read lock;// 设定全局锁 备份失效
    mysql>unlock tables; //解锁全局锁 
     
     
     
     
     
     
     
  • 相关阅读:
    二分查找法
    AES算法工具类
    SHA加密算法工具类
    使用SQL创建唯一索引
    springboot 启动类CommandLineRunner(转载)
    MD5加密算法工具类
    Android 通过Socket 和服务器通讯
    android 网络连接判断
    android 文件上传,中文utf-8编码
    github打不开问题
  • 原文地址:https://www.cnblogs.com/liu-king/p/10882136.html
Copyright © 2011-2022 走看看