zoukankan      html  css  js  c++  java
  • CentOS7.6中mysql实践

    cat /etc/redhat-release 

    CentOS Linux release 7.6.1810 (Core) 

    使用:yum -y install mysql mysql-server 安装好mysql后 ,启动不了mysql

    1. [root@localhost ~]# systemctl start mysql.service  
    2. Failed to start mysql.service: Unit mysql.service not found. 

    mysql 在CentOS7 上

    了解到MariaDB代替了mysql数据库,MariaDB是数据库管理系统Mysql的一个分支,主要由开源社区在维护,GPL授权许可。

    甲骨文收购Mysql之后,有将其闭源的风险,社区采用分支的方式来避开这个风险。

    yum -y install mariadb-server //安装mariadb 数据库服务;

    systemctl start mariadb.service  //启动服务

    systemctl enable mariadb.service //开机启动服务

    mysql -uroot  -p //登录mysql

    安装好mariadb之后, 默认密码为空的,

    给mysql数据库root账户设置密码:

    mysqladmin -u root password 123456

    设置好登录密码之后,再查看centos7 的mysql服务的端口是否正常

    netstat -ntlup |grep 3306

    查看防火墙状态:

    systemctl status firewalld.service

    开启服务端口:允许访问

     firewall-cmd --zone=public --add-port=3306/tcp --permanent

    [root@VPN ~]# firewall-cmd --reload
    success

    开放好端口之后,就通过tcping进行测试端口是否正常可以访问

      

    >>> 重启防火墙
    firewall-cmd --reload

    常用命令介绍
    firewall-cmd --state                           ##查看防火墙状态,是否是running
    firewall-cmd --reload                          ##重新载入配置,比如添加规则之后,需要执行此命令
    firewall-cmd --get-zones                       ##列出支持的zone
    firewall-cmd --get-services                    ##列出支持的服务,在列表中的服务是放行的
    firewall-cmd --query-service ftp               ##查看ftp服务是否支持,返回yes或者no
    firewall-cmd --add-service=ftp                 ##临时开放ftp服务
    firewall-cmd --add-service=ftp --permanent     ##永久开放ftp服务
    firewall-cmd --remove-service=ftp --permanent  ##永久移除ftp服务
    firewall-cmd --add-port=80/tcp --permanent     ##永久添加80端口 
    iptables -L -n                                 ##查看规则,这个命令是和iptables的相同的
    man firewall-cmd                               ##查看帮助
    ---------------------

     刚开始未允许除本机ip之外的ip连接mysql数据库服务,需要进行下权限设置。

    我们需要配置任何主机都可以连接的话,可以使用一下命令:

    MariaDB [test]>grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

    MariaDB [test]> flush privileges;

    设置任何主机连接不需要密码:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION;
    flush privileges;

    创建数据表,create table.

    create table info(id int(30)NOT NULL,name varchar(30) NOT NULL,sex varchar(30) NOT NULL,maill VARCHAR(255) NOT NULL,primary key(id));

    show tables;

    mysql的数据库文件存放目录:

    cd /var/lib/mysql 这个目录存放mysql数据库的文件

    在从数据库服务器上创建数据库:

    create database DB1;

    show databases;

    主从数据同步的方式很多,主要有以下这几种:

    master数据还原到slave上,

    备份成一个.sql文件,或者备份成压缩文件,或者通过脚本进行备份。

    mysqldump -hlocalhost -uroot -p Dbname > Dbname.sql
    mysqldump -hlocalhost -uroot -p DB1 > DB1.sql

    执行时,通过gzip命令进行压缩:

    mysqldump -hlocalhost -uroot -p DB1 |gzip >DB1.sql.gz

    可以将表中数据清空,再导入备份进行测试下.

    通过语句删除数据库中的所有数据:

    delete from dbo.info

    2.通过mysqldump命令进行还原mysql的数据。

    mysql -hlocalhost -uroot -p DB1 < DB1.sql

    还原数据库文件到数据库中:

    mysql -hlocalhost -uroot -p DB1 < DB1.sql (还原使用的是mysql),备份使用的是mysqldump;

    还原后再进行查询数据库,

    use DB1;

    select * from info1;

    我们继续清空数据,然后使用压缩的格式进行还原;

     继续使用压缩的进行还原;

    [root@VPN ~]# gunzip < DB1.sql.gz |mysql -uroot -p DB1

    还原后再进行查询info1 表,看看数据是否正常。

    将master的数据拷贝给slave 然后在slave上进行还原数据库DB1中的表即可。

    mysql -hlocalhost -uroot -p DB1 < DB1.sql

    mysql主从的配置步骤如下:

    在mysql主上,登录到mysql主服务器,然后编辑mysql的配置文件,my.cnf

    vim  /etc/my.cnf

    #设置服务器ID,为1的表示为主服务器,如果服务器没有以下配置,添加,如果有就跳过。

    server-id=1

    #启动MySQ二进制日志系统

    log-bin=mysql-binlog

    #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
    binlog-do-db=DB1
    #不同步mysql系统数据库
    binlog-ignore-db=mysql

     放在mysqld 下面

     配置好主mysql服务器的配置文件后,修改my.cnf ,然后重启mysql服务

     systemctl restart mariadb.service

    然后再通过show master status; 查看数据库主机的配置文件状态。

    接下来配置从服务器的设置:

    my.cnf配置如下:

    server-id=2
    log_bin=mysql-bin
    binlog-do-db=DB1
    binlog-ignore-db=mysql

    以下为从服务器上的操作。

    slave stop # 关闭slave之后再进行配置

    MariaDB [DB1]> change master to master_host='192.168.48.250',master_user='root',master_password='123456',master_log_file='mysql-binlog.000005',master_log_pos=245;

    里面填写的信息是是在主服务器上执行show master status;的信息;

    slave start;
    Query OK, 0 rows affected (0.00 sec)

    grant replication slave on *.* to 'root'@'192.168.48.251' identified by '123456';

    设置好主从后,在从服务器上,使用命令:show slave status 进行查看从的状态。

    然后在主上面,向表中插入一条数据,在从上面进行验证数据是否从主数据库同步到从上面了?进行验证。

    insert into info1 (id,name,sex,mail) values('2','xiaolong','boy','xiaolong@abc.com');

    博文阅读密码felix
  • 相关阅读:
    成为Emacs高手01-学习自带教程
    成为Emacs高手03-学习基础Elisp
    Google Drive For Linux
    Yet Another Scheme Tutorial 02
    1、Maven 基本配置
    eclipse添加easyExport插件,打开本地文件
    原创一看便知、Maven创建web项目
    1、启动oracle的步骤
    java正则表达式【大全】
    servlet上传下载(任何格式的都可以)
  • 原文地址:https://www.cnblogs.com/Enzoo/p/10323052.html
Copyright © 2011-2022 走看看