您的位置:首页 > 运维架构 > Linux

centos下mysql源码编译安装和主备异步配置

2016-03-30 14:38 766 查看
安装机器:10.11.1.193、10.11.1.194

配置:CPU:2 * 12核(2.0GHZ),24线程;MEM:120G

主备同步方式:异步同步

mysql版本:mysql community5.6.28

下载源码并解压:

tar -zxf mysql-5.6.28.tar.gz



cmake安装:





安装编译所需环境:

sudo yum install make gcc-c++ cmake bison-develncurses-devel libaio libaio-devel net-tools perl





编译安装mysql

cmake -DCMAKE_INSTALL_PREFIX=/home/liyuming/mysql/mysqld -DCMAKE_INSTALL_DATADIR=/home/liyuming/mysql/mysqld/data-DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0

依次在源码目录执行下面的命令即可

make distclean

make -j 20

make install

切记不能执行rm -f CMakeCache.txt!

初始化数据库

cd /home/liyuming/mysql/mysqld

scripts/mysql_install_db--user=mysql --basedir=/home/liyuming/mysql/mysqld --datadir=/home/liyuming/mysql/mysqld/data

启动数据库
编辑my.cnf 和 run.sh文件

run.sh的内容:



my.cnf的内容:



文件路径:



启动数据库服务器
sh run.sh server



数据库客户端
sh run.sh client



关闭数据库服务器
sh run.sh stop



数据库调优:
将下面信息追加到my.cnf文件中
back_log=1000
wait_timeout=3600
max_connections=3000
thread_concurrency=48
default-storage-engine=InnoDB
key_buffer_size=8G
innodb_buffer_pool_size=40G
innodb_additional_mem_pool_size=1G
innodb_log_buffer_size=32M
query_cache_size=40G
read_buffer_size=20M
sort_buffer_size=20M
read_rnd_buffer_size=20M
thread_cache_size=640
配置后重新启动数据库服务

设置数据库服务器初始信息

在启动数据库服务器下操作
mysqladmin -u root password 'root'



or

mysqladmin -h 10.11.1.194 -P 13306 -u root password 'root'

测试

mysql -uroot -proot
mysql -hlocalhost -u root -p
OK

mysql -h 10.11.1.193 -P 13306 -u root -p



此时jdbc也无法连接上mysql

解决方法:
./mysqld_safe--user=mysql --skip-grant-tables --skip-networking &



再开一个客户端
在安装的bin目录下
mysql -uroot mysql
updateuser set host ='%' where user ='root';
UPDATE user SET Password=PASSWORD('root') where USER='root' and host='root' or host='localhost';
UPDATE user SET Password=PASSWORD('root') where USER='root';
deletefrom user where USER='';
FLUSHPRIVILEGES;



然后正常关闭数据库



再次启动数据库服务器,一切可正常使用

配置主备
主从同步的条件:
Master:
a 启用二进制日志;
b 选择一个server-id
c 创建具有复制权限的用户
在my.cnf文件中追加下面信息
server-id=1
log-bin=mysql-bin
binlog-do-db=test
binlog-ignore-db= mysql

在数据库中执行:
grant replication slave on *.* to'slave'@'10.11.1.194' identifiedby 'slave';
flush privileges;

重启数据库服务
show master status;



Slave:
a 启用中继日志
b 选择一个唯一的server-id
c 连接主服务器,并开始复制数据

在my.cnf文件中追加下面信息
server-id=2
replicate-do-db=test

在数据库中执行:

stop slave;
change master to master_host='10.11.1.193', master_port=13306,master_user='slave', master_password='slave';
start slave;
show slave status \G;

一切OK!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: