资源描述
使用环境:64位centos6.4
数据库Master主服务器(两台):
Centos 6 (MySQL-Cluster-Master1)192.168.0.152,
Centos 6 (MySQL-Cluster-Master2)192.168.0.153
数据库Slave从服务器(两台,即sql及存储节点):
Centos 6 (MySQL-Cluster-Slave1)192.168.0.154,
Centos 6 (MySQL-Cluster-Slave2)192.168.0.155
MySQL-MGM管理服务器:
Centos 6 (MySQL-Cluster-MGM)192.168.0.156
数据库版本:
mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64.tar.gz
数据库Master - Master主主复制:
Centos_6(MySQL-Master1)192.168.0.157
Centos_6(MySQL-Master2)192.168.0.158
1、 将mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz复制到157、158服务器的tmp目录下
2、 在157、158服务器中安装mysql数据库:
一:建立mysql群及mysql群下mysql用户
root# /usr/sbin/groupadd mysql
root# /usr/sbin/useradd mysql -g mysql
二:进入压缩文件目录、解压及复制到对于目录下
root# cd /tmp/(进入tmp目录)
root# tar zxf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz(解压mysql,同时建立相同名称的目录)
root# mv mysql-5.7.13-linux-glibc2.5-x86_64 /usr/local/mysql/(将解压目录复制到/usr/local/mysql目录下)
root# cd /usr/local/mysql/(进入/usr/local/mysql/)
mkdir data(在usr/local/mysql目录下建立data目录)
三:修改usr/local/mysql目录下所有文件的权限
chown -R mysql:mysql mysql (在usr/local下执行)
四:修改 /etc/f 文件
vi /etc/f (执行,修改命令如下:)
[mysqld]
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data
Scket=/tmp/mysql.sock
read_only
relay_log=/usr/local/mysql/log/relay_logs
五:初始化数据
进入mysql安装目录 cd /usr/local/mysql 执行:
bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ -- secure-file-priv=/root/ --initialize
./bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initial --initialize-insecure
六:启动mysql
添加开机启动:执行命令
cp support-files/mysql.server /etc/init.d/mysql 把启动脚本放到开机初始化目录
启动mysql服务:执行命令service mysql start
七:登录mysql
./mysql -u root -p(在bin下执行)
输入密码即可;
修改密码:
SET PASSWORD = PASSWORD("123456');
八:远程连接
在cmd命令行中输入 mysql -h192.168.0.158 -uroot -p123456
出现 Warning: Using a password on the command line interface can be insecure.
ERROR 1130 (HY000): Host "192.168.139.1' is not allowed to connect to this MySQL server
为了安全,默认是不允许mysql本机以外的机器访问mysql数据库服务,因此需要重新授权root
授权:GRANT ALL PRIVILEGES ON *.* TO root@'%' identified by '123456';
非必要的步骤,如果远程连不上,估计是防火墙的问题,关闭试试:
[root@localhost mysql]# service iptables stop
setenforce 0iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
[root@localhost mysql]# setenforce 0
setenforce: SELinux is disabled
在157、158服务器中配置mysql数据库主从:
一:修改157上vi /etc/f
server-id = 1
log_bin = /usr/locat/mysql/log/logs
注意:/usr/locat/mysql/log/需要加mysql权限
chown -R mysql:mysql /usr/locat/mysql/log
可以用ll查看;
auto_increment_offset=2 自增初始值
auto_increment_increment=2 自增长度
添加这两行,自增值为2,4,6,8,。。。。增长
# 若是 innodb, 且有用 transaction 的話, 需再加入下面兩行
innodb_flush_log_at_trx_commit=1
sync_binlog=1
二:重启mysql服务
Service mysql restart
三:进入mysql
mysql -u root -p
四:建立新的用户及密码
grant all on *.* to 'repl_user'@'%' IDENTIFIED BY 'repl_password';
mysql> FLUSH TABLES WITH READ LOCK; # 先讓 DB 不要再寫資料進去
mysql> SHOW MASTER STATUS; # 這邊資料都要記好, 等一下設定 158 要用
mysql> UNLOCK TABLES; # 158配置 完後, 進去 mysql 解除唯讀
設定 Replication 的操作 (158 Slave)
1.$ sudo vim /etc/mysql/f
server-id = 2 # server-id 不能與其它機器相同
log_bin = /usr/locat/mysql/log/log
注意:/usr/locat/mysql/log/需要加mysql权限
chown -R mysql:mysql /usr/locat/mysql/log
auto_increment_offset=1 自增初始值
auto_increment_increment=2 自增长度
添加这两行,自增值为1,3,5,7,。。。。增长
# 若是 innodb, 且有用 transaction 的話, 需再加入下面兩行
innodb_flush_log_at_trx_commit=1
sync_binlog=1
2.$ mysql -u root -p # 進入 mysql
3.mysql> stop SLAVE;停止SLAVE服务;
4.mysql> CHANGE MASTER TO
MASTER_HOST=’MASTER_HOSTNAME’,
MASTER_USER=’repl_user’’,
MASTER_PASSWORD=’repl_password’,
MASTER_LOG_FILE=’mysql-bin.000014′,
MASTER_LOG_POS=232; # 這邊就要用到之前 157 抄下來的值.
5.mysql> START SLAVE; # 這樣子就會開始 Replication 了, 會將 LOG_POS 之後新的資料開始 sync 回來.
6.mysql> show master status; # 檢查一下設定
7.mysql> show slave status; # 檢查一下設定, 看是不是有異常狀況.
上述运行完后,继续下列操作:
在158上:
1:建立新的用户及密码
GRANT REPLICATION SLAVE ON *.* TO‘repl_user’@’%’ IDENTIFIED BY ‘repl_password’;
2.mysql> FLUSH TABLES WITH READ LOCK; # 先讓 DB 不要再寫資料進去
3.mysql> SHOW MASTER STATUS; # 這邊資料都要記好, 等一下設定 157要用
4.mysql> UNLOCK TABLES; # 157配置 完後, 進去 mysql 解除唯讀
在157上:
1.mysql> stop SLAVE;停止SLAVE服务;
2.mysql> CHANGE MASTER TO
MASTER_HOST=’MASTER_HOSTNAME’,
MASTER_USER=’repl_user’’,
MASTER_PASSWORD=’repl_password’,
MASTER_LOG_FILE=’mysql-bin.000014′,
MASTER_LOG_POS=232; # 這邊就要用到之前 Master 抄下來的值.
3.mysql> START SLAVE; # 结束后在158上执行:unlock tables;.
測試
1.在 157上: mysql> create database test2;
2.在 158上: mysql> show database; # 應該會看到 test2
3.在 158上: mysql> drop database test2;
4.在 157上: mysql> show database; # 應該看不到 test2
展开阅读全文