MySQL主从搭建实现


MySQL是应用广泛的关系型数据库,当数据规模逐渐扩大,并且重要性不断提高的情况下,单数据库的可靠性和性能受到严重挑战,所以就会有了主从,读写分离等需求了。

首先在2台linux下安装mysql,最好是内网机器,可以用内网网卡做主从同步,网络质量和安全都可以得到保证。

1、安装一些常用包:

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

yum -y install perl perl-URI perl-DBI perl-String newt-perl

2、下载并安装mysql

wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.3-m3.tar.gz/from/http://mysql.he.net/

tar -zxf mysql-5.5.3-m3.tar.gz

3、编译安装mysql

cd mysql-5.5.3-m3

./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=partition,innobase,myisammrg &&make &&make install

4、建立mysql用户和数据文件夹等

/usr/sbin/groupadd mysql

/usr/sbin/useradd -g mysql mysql

chown -R mysql:mysql /usr/local/mysql
mkdir -p /home/mysql/data

mkdir -p /home/mysql/binlog
mkdir -p /home/mysql/relaylog

chown -R mysql:mysql /home/mysql/*

5、初始化数据库

/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/home/mysql/data --user=mysql

6、建立mysql启动 关闭脚本:vim /etc/init.d/mysql 如下:

  1. #!/bin/sh   
  2.   
  3.  mysql_port=3306  
  4.  mysql_username="root" //这里要修改   
  5.  mysql_password="12345" //这里要修改   
  6.  function_start_mysql()    
  7. {    
  8.      printf "Starting MySQL...\n"    
  9.      /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/home/mysql/my.cnf 2>&1 > /dev/null &    
  10. }    
  11.  function_stop_mysql()    
  12. {    
  13.      printf "Stoping MySQL...\n"    
  14.      /usr/local/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /tmp/mysql.sock shutdown    
  15. }    
  16.  function_restart_mysql()    
  17. {    
  18.      printf "Restarting MySQL...\n"    
  19.       function_stop_mysql   
  20.      sleep 5  
  21.       function_start_mysql   
  22. }    
  23.  function_kill_mysql()    
  24. {    
  25.      kill -9 $(ps -ef |grep 'bin/mysqld_safe'| grep ${mysql_port} | awk '{printf $2}')    
  26.      kill -9 $(ps -ef |grep 'libexec/mysqld' | grep ${mysql_port} | awk '{printf $2}')    
  27. }    
  28. if [ "$1" = "start" ]; then   
  29.       function_start_mysql   
  30.  elif [ "$1" = "stop" ]; then   
  31.       function_stop_mysql   
  32.  elif [ "$1" = "restart" ]; then   
  33.       function_restart_mysql   
  34.  elif [ "$1" = "kill" ]; then   
  35.       function_kill_mysql   
  36. else    
  37.      printf "Usage: /home/mysql/mysql {start;stop;restart;kill}\n"    
  38.  fi  
  • 1
  • 2
  • 3
  • 下一页

相关内容