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 如下:
- #!/bin/sh
-
- mysql_port=3306
- mysql_username="root" //這裡要修改
- mysql_password="12345" //這裡要修改
- function_start_mysql()
- {
- printf "Starting MySQL...\n"
- /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/home/mysql/my.cnf 2>&1 > /dev/null &
- }
- function_stop_mysql()
- {
- printf "Stoping MySQL...\n"
- /usr/local/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /tmp/mysql.sock shutdown
- }
- function_restart_mysql()
- {
- printf "Restarting MySQL...\n"
- function_stop_mysql
- sleep 5
- function_start_mysql
- }
- function_kill_mysql()
- {
- kill -9 $(ps -ef |grep 'bin/mysqld_safe'| grep ${mysql_port} | awk '{printf $2}')
- kill -9 $(ps -ef |grep 'libexec/mysqld' | grep ${mysql_port} | awk '{printf $2}')
- }
- if [ "$1" = "start" ]; then
- function_start_mysql
- elif [ "$1" = "stop" ]; then
- function_stop_mysql
- elif [ "$1" = "restart" ]; then
- function_restart_mysql
- elif [ "$1" = "kill" ]; then
- function_kill_mysql
- else
- printf "Usage: /home/mysql/mysql {start;stop;restart;kill}\n"
- fi