zoukankan      html  css  js  c++  java
  • MySQL5.7安装

    1. 下载包
    wget   http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz
     
    2. 解压
    tar  xxvf mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz
    mv  mysql-5.7.12-linux-glibc2.5-x86_64  /usr/local/mysql
     
     
    3. 初始化
    useradd -M -s /sbin/nologin  mysql
    mkdir -p /data/mysql
    chown mysql /data/mysql
    cd /usr/local/mysql
    ./bin/mysqld  --initialize --user=mysql --datadir=/data/mysql
    注意,这一步最后一行会有一个提示
    [Note] A temporary password is generated for root@localhost: B*s1i(*,kXwg    llRhYDpFa6>8    //jHxl,!<3iQ
    最后面的字符串为root密码。
    ./bin/mysql_ssl_rsa_setup --datadir=/data/mysql
     
     
    4. 拷贝配置文件和启动脚本
    cp support-files/my-default.cnf  /etc/my.cnf 
    vim /etc/my.cnf //编辑或者修改
    basedir = /usr/local/mysql
    datadir = /data/mysql
    port = 3306
    socket = /tmp/mysql.sock
     
     
     
    cp support-files/mysql.server /etc/init.d/mysqld
    vi /etc/init.d/mysqld   //编辑或者修改
    basedir=/usr/local/mysql
    datadir=/data/mysql
     
     
    5. 启动服务
    /etc/init.d/mysqld start
     
    6. 设置root密码
    使用初始化密码登录
    /usr/local/mysql/bin/mysql -uroot -p'B*s1i(*,kXwg'  //进入后直接设置密码
    mysql>set password = password('mypass');   //一定要设置一下新密码
    退出来,再使用新的密码登录就可以了
     
    或者
    SET PASSWORD = PASSWORD('HycK@12345.CoM');
    ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
    flush privileges;
     
     
     
     
     
     
    还有一种情况,就是不知道初始化密码
    vi /etc/my.cnf
    在[mysqld]下面增加一行
    skip-grant-tables
    重启  /etc/init.d/mysqld restart
     
    /usr/local/mysql/bin/mysql -uroot
    mysql> update user set authentication_string=password('123333') where user='root';
    退出来后,更改my.cnf,去掉刚加的 skip-grant-tables
    重启 /etc/init.d/mysqld restart
     
    此时就可以使用新的密码了。
     
     
     
    数据库时差 相差8小时
    官网原话:
    This variable was added in MySQL 5.7.2. Before 5.7.2, timestamps in log messages were written using the local system time zone by default, not UTC. If you want the previous log message time zone default, set log_timestamps=SYSTEM.
    在MySQL 5.7.2 新增了 log_timestamps 这个参数,该参数主要是控制 error log、genera log,等等记录日志的显示时间参数。
    在 5.7.2 之后改参数为默认 UTC 这样会导致日志中记录的时间比中国这边的慢,导致查看日志不方便。修改为 SYSTEM 就能解决问题
     
    SHOW GLOBAL VARIABLES LIKE 'log_timestamps';
    +----------------+--------+
    | Variable_name  | Value  |
    +----------------+--------+
    | log_timestamps | UTC    |
    +----------------+--------+
     
    SET GLOBAL log_timestamps = SYSTEM;
    Query OK, 0 rows affected (0.00 sec)
     
    SHOW GLOBAL VARIABLES LIKE 'log_timestamps';
    +----------------+--------+
    | Variable_name  | Value  |
    +----------------+--------+
    | log_timestamps | SYSTEM |
    +----------------+--------+
     
     
     
     
     
     
     
     
     
    增量备份
     
    mysqlbinlog e:/mysqldb/logbin.000001
     
    mysql 对于你的每一次操作 都会记录一次时间 同时 给你分配一个位置 (pos)
    换句话说 以后我们恢复 可以根据时间点来恢复 或者根据位置来恢复
     
    比如说 我们把一个表个drop 了 那么我们只要把表恢复到 drop之前就好了
     
    时间点恢复
        我们可以画个流程图
        logbin.000001
        insert ......   3       2013-07-23 17:57:00
        update .....   4    2013-07-23 17:59:00
         insert ......   100       2013-07-23 19:57:00
        drop  ...        101    2013-07-23 20:57:00
     
        恢复的话可以这么写
        mysqlbinlog  --stop-datatime="2013-07-23 20:50:00" e:/mysqldb/logbin.000001
        上面这句的意思是 一直恢复到 2013-07-23 20:50:00  停止
         mysqlbinlog  --start-datatime="2013-07-23 20:50:00" e:/mysqldb/logbin.000001
        上面这句的意思是 从2013-07-23 20:50:00  开始恢复
     
    按照位置来恢复
            mysqlbinlog  --stop-position="100" e:/mysqldb/logbin.000001  |
            上面这个语句意思是 恢复到100的位置
     
    真实性恢复
    按照位置恢复
    mysqlbinlog  --stop-position=4590 e:/mysqldb/logbin.000001  | mysql -uroot -p
    按照时间恢复
    mysqlbinlog  --stop-datetime="2013-07-24 18:17:19" e:/mysqldb/logbin.000001  | mysql -uroot -p
     
     
    可以控制从什么时候开始 到什么是结束
    mysqlbinlog --start-position=4 --stop-position=106 yueliangd
    ao_binglog.000001 > c:\test1.txt
  • 相关阅读:
    git 强制覆盖本地,与远程仓库一致
    ABDCD
    docker 有效指令
    Python进阶-----__slots__属性
    Python进阶-----通过类的内置方法__format__自定制格式化字符串
    Python进阶-----通过类的内置方法__str__和__repr__自定制输出(打印)对象时的字符串信息
    Python进阶-----类的内置item属性方法
    Python进阶-----类的内置方法__getattribute__
    Python进阶-----使用isinstance和issublcass方法判断类和对象的关系
    Python进阶-----类组合的方式完成授权
  • 原文地址:https://www.cnblogs.com/caoyf1992/p/8243207.html
Copyright © 2011-2022 走看看