安装机器:10.11.1.193、10.11.1.194
主备同步方式:异步同步
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 masterstatus;
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!