MySql主从安装

1 环境介绍

操作系统:Oracle Linux Server release 6.2

2 安装软件
采用源码安装方式
1. mysql安装包:mysql-5.6.15.tar.gz
Mysql 下载地址:
2.  Cmake安装包
mysql5.5以后是通过cmake来编译的
wget 

3 删除Oracle Linux自带的MySql

如果已经安装了Mysql其他版本,先删除
3.1 检查是否安装了MySQL
[root@study1 /]# rpm -qa | grep -i mysql
mysql-libs-5.1.52-1.el6_0.1.i686
qt-mysql-4.6.2-20.el6.i686
mysql-server-5.1.52-1.el6_0.1.i686
mysql-5.1.52-1.el6_0.1.i686
perl-DBD-MySQL-4.013-3.el6.i686

3.2 使用yum来删除MySQL

[root@study1 ~]# yum -y remove  mysql-server-5.1.52-1.el6_0.1.i686
[root@study1 ~]# yum -y remove mysql-5.1.52-1.el6_0.1.i686
[root@study1 ~]# yum -y remove mysql-libs-5.1.52-1.el6_0.1.i686
4 主服务器上安装MySql
4.1 先安装cmake
[root@study1 software]# tar -zxvf cmake-2.8.4.tar.gz
[root@study1 software]# cd cmake-2.8.4
[root@study1 cmake-2.8.4]# ./configure
[root@study1 cmake-2.8.4]# make
[root@study1 cmake-2.8.4]# make install

4.2 创建mysql的安装目录及数据存放目录

[root@study1 opt]# mkdir /opt/mysql        //安装mysql
[root@study1 opt]# mkdir /opt/mysql/data    //存放数据
4.3 创建mysql用户及用户组
[root@study1 opt]# groupadd mysql
[root@study1 opt]# useradd –r –g mysql mysql
赋予数据存放目录权限:
chown mysql:mysql -R /opt/mysql/data

4.4 编译安装mysql

? 编译
[root@study1 software]# tar -zxvf mysql-5.6.15.tar.gz
[root@study1 software]# cd mysql-5.6.15
[root@study1 mysql-5.6.15]# cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql \
 -DSYSCONFDIR=/opt/mysql/etc \
 -DMYSQL_DATADIR=/opt/mysql/data \
 -DMYSQL_TCP_PORT=3306 \
 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
 -DWITH_EXTRA_CHARSETS=all \
 -DWITH_SSL=bundled \
 -DWITH_EMBEDDED_SERVER=1 \
 -DENABLED_LOCAL_INFILE=1 \
 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
 -DDEFAULT_CHARSET=utf8 \
 -DDEFAULT_COLLATION=utf8_general_ci

参数说明:

 CMAKE_INSTALL_PREFIX : MySQL安装目录
 SYSCONFDIR : 配置文件目录
 MYSQL_DATADIR :数据库目录
 MYSQL_TCP_PORT :数据库端口
 MYSQL_UNIX_ADDR :安排个目录放mysql.sock文件把,可以设置为日志存放,data存放目录等位置
 WITH_EXTRA_CHARSETS : 字符
 WITH_SSL       :the type of SSL
 WITH_EMBEDDED_SERVER :Whether to build embedded server (默认:OFF)
 ENABLED_LOCAL_INFILE :Whether to enable LOCAL for LOAD DATA INFILE(默认:OFF)  允许从本地导入数据
 WITH_INNOBASE_STORAGE_ENGINE:  1

参数详细见:

如果发生错误查看:
。。。/mysql-5.6.15/CMakeFiles下的CMakeError.log、CMakeOutput.log文件
注意事项:
重新编译时,需要清除旧的对象文件和缓存信息。
# rm -f CMakeCache.txt
? 安装
[root@study1 mysql-5.6.15]# make
[root@study1 mysql-5.6.15]# make install

4.5 初始化数据库

[root@study1 mysql]# cd /opt/mysql
[root@study1 mysql]# mkdir etc
[root@study1 mysql]# mkdir log
[root@study1 mysql]#  chown -R mysql .
[root@study1 mysql]# chgrp -R mysql .
[root@study1 mysql]# scripts/mysql_install_db --user=mysql --basedir=/opt/mysql/ --datadir=/opt/mysql/data/
Installing MySQL system tables...2014-01-23 10:18:50 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2014-01-23 10:18:50 20209 [Note] InnoDB: The InnoDB memory heap is disabled
2014-01-23 10:18:50 20209 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2014-01-23 10:18:50 20209 [Note] InnoDB: Compressed tables use zlib 1.2.3
2014-01-23 10:18:50 20209 [Note] InnoDB: Using Linux native AIO
2014-01-23 10:18:50 20209 [Note] InnoDB: Not using CPU crc32 instructions
2014-01-23 10:18:50 20209 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2014-01-23 10:18:50 20209 [Note] InnoDB: Completed initialization of buffer pool
2014-01-23 10:18:50 20209 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created!
2014-01-23 10:18:50 20209 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB
2014-01-23 10:18:50 20209 [Note] InnoDB: Database physically writes the file full: wait...
2014-01-23 10:18:50 20209 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB
2014-01-23 10:18:53 20209 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB
2014-01-23 10:18:56 20209 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
2014-01-23 10:18:56 20209 [Warning] InnoDB: New log files created, LSN=45781
2014-01-23 10:18:56 20209 [Note] InnoDB: Doublewrite buffer not found: creating new
2014-01-23 10:18:56 20209 [Note] InnoDB: Doublewrite buffer created
2014-01-23 10:18:56 20209 [Note] InnoDB: 128 rollback segment(s) are active.
2014-01-23 10:18:56 20209 [Warning] InnoDB: Creating foreign key constraint system tables.
2014-01-23 10:18:56 20209 [Note] InnoDB: Foreign key constraint system tables created
2014-01-23 10:18:56 20209 [Note] InnoDB: Creating tablespace and datafile system tables.
2014-01-23 10:18:56 20209 [Note] InnoDB: Tablespace and datafile system tables created.
2014-01-23 10:18:56 20209 [Note] InnoDB: Waiting for purge to start
2014-01-23 10:18:56 20209 [Note] InnoDB: 5.6.15 started; log sequence number 0
2014-01-23 10:18:58 20209 [Note] Binlog end
2014-01-23 10:18:58 20209 [Note] InnoDB: FTS optimize thread exiting.
2014-01-23 10:18:58 20209 [Note] InnoDB: Starting shutdown...
2014-01-23 10:18:59 20209 [Note] InnoDB: Shutdown completed; log sequence number 1625977
OK

Filling help tables...2014-01-23 10:18:59 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2014-01-23 10:19:00 20234 [Note] InnoDB: The InnoDB memory heap is disabled
2014-01-23 10:19:00 20234 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2014-01-23 10:19:00 20234 [Note] InnoDB: Compressed tables use zlib 1.2.3
2014-01-23 10:19:00 20234 [Note] InnoDB: Using Linux native AIO
2014-01-23 10:19:00 20234 [Note] InnoDB: Not using CPU crc32 instructions
2014-01-23 10:19:00 20234 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2014-01-23 10:19:00 20234 [Note] InnoDB: Completed initialization of buffer pool
2014-01-23 10:19:00 20234 [Note] InnoDB: Highest supported file format is Barracuda.
2014-01-23 10:19:00 20234 [Note] InnoDB: 128 rollback segment(s) are active.
2014-01-23 10:19:00 20234 [Note] InnoDB: Waiting for purge to start
2014-01-23 10:19:00 20234 [Note] InnoDB: 5.6.15 started; log sequence number 1625977
2014-01-23 10:19:00 20234 [Note] Binlog end
2014-01-23 10:19:00 20234 [Note] InnoDB: FTS optimize thread exiting.
2014-01-23 10:19:00 20234 [Note] InnoDB: Starting shutdown...
2014-01-23 10:19:01 20234 [Note] InnoDB: Shutdown completed; log sequence number 1625987
OK

To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

  /opt/mysql//bin/mysqladmin -u root password 'new-password'

  /opt/mysql//bin/mysqladmin -u root -h study1.dlt password 'new-password'

Alternatively you can run:

  /opt/mysql//bin/mysql_secure_installation

which will also give you the option of removing the test

databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:

  cd . ; /opt/mysql//bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl

  cd mysql-test ; perl mysql-test-run.pl

Please report any problems with the ./bin/mysqlbug script!

The latest information about MySQL is available on the web at

  

Support MySQL by buying support/licenses at 

New default config file was created as /opt/mysql//my.cnf and

will be used by default by the server when you start it.
You may edit this file to change server settings

[root@study1 mysql]# chown -R root .
[root@study1 mysql]# chown -R mysql data
[root@study1 mysql]#  bin/mysqld_safe --user=mysql &
[3] 20646
[root@study1 mysql]# 140123 10:42:05 mysqld_safe Logging to '/opt/mysql/data/study1.dlt.err'.
140123 10:42:05 mysqld_safe Starting mysqld daemon with databases from /opt/mysql/data
4.6 配置数据库
    修改密码:
[root@study1 mysql]# bin/mysqladmin -u root password 'mysql'

[root@study1 mysql]# cp support-files/mysql.server /etc/init.d/
[root@study1 mysql]# cp support-files/my-default.cnf  etc/my.cnf

编辑etc/my.cnf,zai [mysqld]下增加lower_case_table_names=1

设置环境:
[root@study1 etc]# cd /etc
[root@study1 etc]# vi profile
在文件最后增加:
PATH=/opt/mysql/bin:/opt/mysql/lib:$PATH
export PATH

4.7 手工启动数据库

[root@study1 mysql]# service mysql.server status
 ERROR! MySQL is not running
[root@study1 mysql]# service mysql.server start
Starting MySQL.......... SUCCESS!
[root@study1 mysql]# service mysql.server status
 SUCCESS! MySQL running (31160)
[root@study1 mysql]#
4.8 设置自动启动
[root@study1 mysql]# chkconfig --level 35 mysql.server on
[root@study1 mysql]# chkconfig | grep mysql
mysql.server    0:off   1:off   2:on    3:on    4:on    5:on    6:off