系统环境:CentOS release 6.5 (Final)(最小化安装)
Mysql版本:mysql-5.6.12
Cmake版本:cmake-2.8.4
说明:安装mysql先安装cmake(原因:mysql5.5以后是通过cmake来编译的)
可以自己选择安装自己常用的工具,如lrzsz,vim等
准备完毕后即可进行安装:
第一步:检查是否自带安装了Mysql,如果有,则删除
rpm –qa | grep mysql
如果系统自带卸载自带安装的mysql:
yum -y remove mysql-libs-5.1.71-1.el6.x86_64
第二步:安装mysql依赖的包
yum -y install gcc openssl-devel zlib-devel gcc-c++ autoconf automake libtool make ncurses-devel* bison
第三步:解压并安装cmake工具
# tar xzvf cmake-2.8.4.tar.gz
# cd cmake-2.8.4
# ./bootstrap
# gmake
# gmake install
第四步:编译并安装MySQL(安装到/usr/mysql目录下):
添加MySQL用户和用户组
# mkdir /usr/mysql
# groupadd mysql
# useradd –g mysql mysql
# tar zxvf mysql-5.6.12.tar.gz
# cd mysql-5.6.12
# cmake -j 4 . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/usr/local/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DEXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DWITH_DEBUG=0
参数说明:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安装目录
-DINSTALL_DATADIR=/usr/local/mysql/data //数据库存放目录
-DSYSCONFDIR=/etc //mysql的配置文件位置
-DWITH_INNOBASE_STORAGE_ENGINE=1 //加上innodb存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 //
-DWITH_BLACKHOLE_STORAGE_EGINE=1 //
-DWITH_FEDERATED-STORAGE_ENGINE=1 //
-DWITH_PARTITION_STORAGE_ENGINE=1 //分区的存储引擎
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock //sock文件位置
-DDEFAULT_CHARSET=utf8 //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci //校验字符
-DEXTRA_CHARSETS=all //安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
# make –j 4
# make install
说明:编译安装主mysql数据库的同时,可进行从mysql数据库的编译安装,重复以上的步骤即可。
注意事项:
重新编译时,需要清除旧的对象文件和缓存信息。
# make clean
# rm -f CMakeCache.txt
# rm -rf /etc/my.cnf(如果有该文件就删除,本人的目录中并无此文件)
第五步:进入安装目录,将程序二进制的所有权改为root,数据目录的所有权改为mysql用户,更新授权表,并安装数据库。
# cd /usr/local/mysql/
# chown -R root . //注意:后面必须得有点,当前目录及其以下
# chown -R mysql .
# chgrp -R mysql .
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --collation-server=utf8_general_ci
第六步:设置用户的mysql的环境变量(编辑用户家目录中的.bash_profile文件)
# vim /root/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
使该文件生效:# source .bash_profile
使所有用户都生效的方法:
# vim /etc/bashrc
在最后加入如下的东西:
PATH=$PATH:/usr/local/mysql/bin
第七步:将mysql的启动服务添加到系统服务中并设置开机自启动
主要是将mysql.server拷贝到/etc/rc.d/init.d中,命名为mysql。在有的系统中,源码包安装的mysql,mysql.server在/usr/local/mysql/support-files/mysql.server中。
# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
# chkconfig --add mysql 添加服务
# chkconfig --list 显示服务列表
如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入
# chkconfig –level 345 mysql on
# reboot 重启电脑看下效果哦
# netstat -na | grep 3306 如果看到有监听说明服务启动了
如果远程利用工具无法连接数据则要关闭防火墙
# /etc/rc.d/init.d/iptables stop
或在/etc/sysconfig/iptables文件中添加一条规则后重启防火墙即可:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
第八步:配置主数据库文件/usr/local/mysql/my.cnf
log_bin=/usr/local/mysql/data/mysql3306-bin
binlog-ignore-db=mysql,test 避免同步mysql用户配置,以免不必要的麻烦
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
server_id=811
socket=/usr/local/mysql/data/mysql3306.sock
最后添加:lower_case_table_names=1 设置表名的大小写区分:0,区分大小写; 1,不区分
修改完成后重启mysql数据库服务使其生效
第八步:配置从数据
配置从数据库文件/usr/local/mysql3307/my.cnf
basedir =/usr/local/mysql3307
datadir =/usr/local/mysql3307/data
port =3307
server_id =812
socket =/usr/local/mysql3307/data/mysql3307.sock
pid-file =/usr/local/mysql3307/data/pid3307.pid
最后添加:lower_case_table_names=1 设置表名的大小写区分:0,区分大小写; 1,不区分
第九步:修改完成后重启mysql3307数据库服务使其生效
登录mysql3307从服务器
# mysql -u root -p --port=3307 --protocol=TCP
执行以下命令:
mysql>CHANGE MASTER TO
MASTER_HOST='192.168.1.171',
MASTER_USER='root',
MASTER_PASSWORD='fanjinbao',
MASTER_PORT=3306,
MASTER_LOG_POS=120; 去主服务器查询所得show master status \G;
Position: 120
说明:
MASTER_HOST:主服务器的IP。MASTER_USER:配置主服务器时建立的用户名
MASTER_PASSWORD:用户密码
MASTER_PORT:主服务器mysql端口,如果未曾修改,默认即可。
重新启动slave服务
Mysql>Start slave;
至此主从mysql数据库配置完毕,可通过在从数据库中输入
show slave status \G;
如果下面两个选项都是yes说明配置成功:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
也可以在主数据库中创建个数据库看从数据库中是否存在。
mysql默认是不可以通过远程机器访问的,通过下面的配置可以开启远程访问
# mysql -u root -p --port=3307 --protocol=TCP
mysql>use mysql;
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
mysql>update user set Password = password('fanjinbao') where User='root';
mysql>flush privileges;
mysql>exit;
可选:运行安全设置脚本,修改MySQL用户root(不是系统的root!)的密码,禁止root远程连接(防止破解密码),移除test数据库和匿名用户,强烈建议生产服务器使用:
# /usr/local/mysql/bin/mysql_secure_installation