mysql数据库安装及主从复制配置详解

一、linux上安装mysql(命令中空格格式可能不正确,需要在linux上重新删除输入空格)

1.下载mysql安装包(也可以去官方网站下载解压)

    wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz

2.解压安装包

 tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz

3.移动解压后的mysql目录,将当前目录下的解压包移动到/usr/local/目录下,并改名为mysql

    mv mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql

4.添加用户组和用户

  #添加用户组

  groupadd mysql

  #添加用户mysql 到用户组mysql

  useradd -g mysql mysql

  #查看系统用户是否存在mysql

  cat /etc/passwd

5.切换到/usr/local/mysql目录,安装

   #切换目录

   cd /usr/local/mysql/

   #安装

   scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

6.复制mysql服务到启动目录下,并授权

     #复制

  cp support-files/mysql.server /etc/init.d/mysqld

  #授权  

  chmod 755 /etc/init.d/mysqld

7.复制mysql配置文件到配置文件最优先读取位置

  #查看mysql配置文件读取优先级顺序,最前面的路径最优先读取,找不到则往后读

  /usr/local/mysql/bin/mysql --verbose --help|grep -A 1 'Default options'

  #复制

   cp support-files/my-default.cnf /etc/my.cnf

8.修改启动脚本

  vi /etc/init.d/mysqld

  #修改项:

  basedir=/usr/local/mysql/

  datadir=/usr/local/mysql/data

9.启动mysql服务

  service mysqld start

10.测试连接

      bin/mysql -uroot

     能进入数据库说明连接成功,数据库已经安装完成!退出mysql(exit;)下面进行一些配置

11.修改环境变量,添加mysql环境变量

     export PATH=$PATH:/usr/local/mysql/bin

 设置变量的三种方法

1. 在/etc/profile文件中添加变量【对所有用户生效(永久的)】

用vi在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。

例如:编辑/etc/profile文件,添加CLASSPATH变量

# vi /etc/profile
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar;$JAVA_HOME/lib/dt.jar

注:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。

2. 在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】

用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。

例如:编辑li用户目录(/home/li)下的.bashrc

$ vi /home/li/.bashrc

添加如下内容:
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar;$JAVA_HOME/lib/dt.jar

注:修改文件后要想马上生效还要运行$ source /home/li/.bashrc不然只能在下次重进此用户时生效。

3. 直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】
如:export PATH=$PATH:/usr/local/mysql/bin

12.设置mysql的远程访问

   (1)打开端口3306的防火墙

            /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

           /etc/rc.d/init.d/iptables save ---将修改永久保存到防火墙中

(2)设置数据库远程访问权限,先登录mysql数据库

        #授权并创建用户

         grant all privileges on *.* to 'myuser' @'%' identified by '123456';

         #刷新权限

         flush privileges; 

         #查询用户是否存,是否授权,\G为换行显示命令

          select * from mysql.user\G;

'all privileges ':所有权限 也可以写成 select ,update等。
'myuser' 用户,如果没有则自动创建
 *.* 所有库的所有表 如 databasename.*。
 %  数据库所在的IP,%标识所有IP。
 identified by ‘密码’ 表示通过密码连接

 

二、mysql主从复制配置

      复制原理:
             Mysql中有一种日志叫做bin日志(二进制日志)。这个日志会记录下所有修改了数据库的SQL语句(insert,update,delete,ALTER TABLE,grant等等)。
             主从复制的原理其实就是把主服务器上的BIN日志复制到从服务器上执行一遍,这样从服务器上的数据就和主服务器上的数据相同了。

主从复制配置过程:
    主节点:
        启用二进制日志。
        为当前节点设置一个全局唯一的server_id。
        创建有复制权限的用户账号 REPLIACTION SLAVE ,REPLIATION CLIENT。
    从节点:
        启动中继日志。
        为当前节点设置一个全局唯一的server_id。
        使用有复制权限的用户账号连接至主节点,并启动复制线程。

1.如上操作在两个服务器安装mysql,其中主服务器必须设置远程访问权限

2.配置主节点

   进入主节点服务器然后打开my.cnf配置文件

     vi /etc/my.cnf
添加:log-bin = mysql-bin
添加:binlog_format=mixed
添加 :server-id =1
添加:innodb-file-per-table =ON
添加:skip_name_resolve=ON

mysql数据库安装及主从复制配置详解_第1张图片

保存后重启mysql服务,重连mysql

service mysqld restart

 

mysql数据库安装及主从复制配置详解_第2张图片

3.在主节点创建从节点访问主节点权限的用户

 grant all privileges on *.* to slave@'从节点IP' identified by '123456';

至此,主节点配置完成!

 查看二进制日志log_bin是否开启:show global variables like '%log%';

mysql数据库安装及主从复制配置详解_第3张图片

查看主节点server_id:show global variables like '%server%';

mysql数据库安装及主从复制配置详解_第4张图片

查看主节点二进制日志列表:show master logs;

mysql数据库安装及主从复制配置详解_第5张图片

4.从节点配置

vi /etc/my.cnf

  • 添加:relay-log=relay-log
  • 添加:relay-log-index=relay-log.index
  • 添加:server-id=2
  • 添加:innodb_file_per_table=ON
  • 添加:skip_name_resolve=ON

mysql数据库安装及主从复制配置详解_第6张图片

重启从节点数据库

service mysqld restart

5.从节点登陆mysql

查看二进制日志log_bin是否开启:show global variables like '%log%';

mysql数据库安装及主从复制配置详解_第7张图片

查看主节点server_id:show global variables like '%server%';

mysql数据库安装及主从复制配置详解_第8张图片

6.在从节点配置访问主节点的参数信息
注意:主节点的二进制文件一定要是二进制列表中的最后一个二进制文件。

mysql数据库安装及主从复制配置详解_第9张图片

 CHANGE MASTER TO MASTER_HOST='主节点IP',MASTER_USER='slave',MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=407;

注意:slave为刚才在主节点创建的用户

至此,从节点配置完成!

查看从节点状态:show slave status\G;

mysql数据库安装及主从复制配置详解_第10张图片

此时未启动从节点复制线程,因此两个线程都未启动,启动复制线程:start slave;

在查看从节点状态,都是yes

mysql数据库安装及主从复制配置详解_第11张图片

7.测试

在主节点任意增删改操作,从节点都同步复制!

 

 

 

你可能感兴趣的:(数据库,mysql,主从复制,linux)