zoukankan      html  css  js  c++  java
  • mysql-5.7.25安装以及使用

    1、

    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
    

    2、

    yum install -y libaio

    3、检查你所用的Linux下有没有安装过mysql,没有卸载干净

    rpm -qa|grep -i mysql

    如果存在,则需要先卸载掉,不然会出现覆盖错误。

    yum remove mysql mysql-server mysql-libs mysql-server;
    find / -name mysql 将找到的相关东西delete掉;
    rpm -qa|grep mysql(查询出来的东东yum remove掉)

    4、创建mysql的用户组/用户, data目录及其用户目录

    mkdir -p /usr/local/mysql/data # mysql的默认安装路径,建议不要更换,如果更换后续需要更新配置 在mysql文件夹下创建文件夹data
    useradd mysql # 创建一个名为mysql的用户组

    5、解压缩并转移

    # tar -xzvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz # 解压文件
    # cd mysql-5.7.17-linux-glibc2.5-x86_64 # 进入
    # mv * /usr/local/mysql/

    6、编译安装

    cd /usr/local/mysql/

    ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

    记录上面成功安装后的密码,如上:hIE;k,h8gd#q,后续用到!

    7、配置mysql

    chown -R mysql.mysql /usr/local/mysql # 赋予权限

    #进入mysql的安装目录支持文件目录
    cd /usr/local/mysql/support-files

    # 拷贝配置文件模板为新的mysql配置文件,
    cp my-default.cnf /etc/my.cnf

    #设置编码,可按需修改新的配置文件选项, 不修改配置选项, mysql则按默认配置参数运行.
    #如下是我修改配置文件/etc/my.cnf, 设置编码为utf8以防乱码
    vim /etc/my.cnf


    [mysqld]

    log-bin=mysql-bin

    server-id=1
    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data

    character_set_server=utf8
    init_connect='SET NAMES utf8'


    [client]
    default-character-set=utf8

    此处需要注释掉##sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

    否则后续登陆时会报异常:

    mysql: [ERROR] unknown variable 'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'


    8、启动mysql服务

    /usr/local/mysql/support-files/mysql.server start

    截至目前,证明mysql已运行成功!!!

    9、配置mysql服务开机自动启动

    # cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld # 拷贝启动文件到/etc/init.d/下并重命令为mysqld
    # chmod 755 /etc/init.d/mysqld # 增加执行权限
    # chkconfig --list mysqld # 检查自启动项列表中没有mysqld这个,
    # chkconfig --add mysqld # 如果没有就添加mysqld:
    # chkconfig mysqld on # 用这个命令设置开机启动:

    10、mysql服务的启动/重启/停止

    # systemctl start mysqld # 启动服务
    # systemctl restart mysqld # 重启服务
    # systemctl stop mysqld # 停止服务

    11、修改mysql用户root的密码以及开放远程授权
    ln -s /usr/local/mysql/bin/mysql /usr/bin #软链接到/usr/bin
    mysql -u root -p
    输入之前记录的密码,登陆mysql
    SET PASSWORD = PASSWORD('123456'); # PASSWORD()里面的123456 是设置的新密码,可以设置成你的密码
    ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
    flush privileges;
    grant all privileges on *.* to 'root'@'localhost' identified by '123456'; #mysql远程授权

    12、更改一些编码
    use mysql;
    s #查看mysql信息
    show variables like 'character%';
    SET character_set_database = utf8;
    show variables like 'character%';
    s

    13、调整防火墙、开启3306端口:
    vim /etc/sysconfig/iptables
    -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

    systemctl restart iptables

     至此,单机数据库就安装完成了,至于如何创建数据库,请自行查询文档.

    PS:如果需要配置主从,请参照以上1-13步,在配置一台新的机器

    主从配置

    主配置文件修改:

    mysql -u root -p #进入mysql
    create user 'repl'@'slave_IP' IDENTIFIED BY 'repl'; #给slave创建可以同步数据的账号密码
    GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'slave_IP' IDENTIFIED BY 'repl'; #给slave授权访问权限
    flush privileges;
    select user,host,authentication_string from mysql.user;
    show master statusG;
    获得File信息和Position信息,从库配置稍后需要使用

    从库配置:
    vim /etc/my.cnf

    [mysqld]

    log-bin=mysql-bin

    server-id=2
    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data

    character_set_server=utf8
    init_connect='SET NAMES utf8'


    [client]
    default-character-set=utf8

    重启从数据库

    systemctl restart mysqld 

    mysql -u root -p #进入mysql
    change master to master_host='1master_ip', master_user='repl', master_password='repl', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=1136, master_connect_retry=30;
    start slave; #mysql-bin.000001就是主库的File信息,master_log_pos就是主库的Position信息
    show slave statusG; #查看,如果没有报错,即代表成功,你就可以开始尝试在主库建表,看看从库是否有相同信息了。

    如有报错:
    检查master的状态:
    show master statusG;
    比对change master的master_log_file和master_log_pos是否和master一致,如果一致,执行以下命令:
    stop slave;

    reset slave;

    start slave;

    备份:

    mysqldump -u root -p --databases choose test > roverliang.sql

    ./mysqlbinlog --no-defaults --database=jiashunc --start-datetime="2018-01-25 09:00:00" --stop-datetime="2018-01-26 10:40:00" --base64-output=decode-rows -vv ../data/mysql-bin.000005

    l重置root密码:

    # systemctl stop mysqld # 停止服务

    # /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &  #不检查权限的方式启动

    #use mysql;

    update mysql.user set authentication_string=password('Aa111111') where user='root' ;

    # 然后退出,重启服务

    # systemctl restart mysqld 

    mysql -u root -p
    输入之前重置的密码,登陆mysql

    mysql> use mysql; #会报如下错误
    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

    SET PASSWORD = PASSWORD('Aa111111'); #重新在设置一下密码即可.

  • 相关阅读:
    3.3 React Hooks
    ES6高阶函数
    ES6扩展运算符
    4.0不用npm,cnpm。使用yarn包启动react项目
    4.3 webpack打包学习
    4.2 Node.js模块化教程
    4.1React模块化
    vue组件化开发
    js箭头函数
    weblogic_exploit
  • 原文地址:https://www.cnblogs.com/cjsblogs/p/8116782.html
Copyright © 2011-2022 走看看