alive1 安装mysql5.5.49
rpm -qa | grep mysql --检查本地安装的mysql版本
yum remove -y mysql-libs-5.1.73-7.el6.x86_64 mysql-devel-5.1.73-7.el6.x86_64 mysql-5.1.73-7.el6.x86_64 ---卸载
tar -zxf mysql-5.5.49.tar.gz -C /usr/local/
cd /usr/local/mysql-5.5.49/
mkdir -p /data/mysql
groupadd -g 1036 mysql
useradd -u 1036 -g 1036 -d /data/mysql/ -s /sbin/nologin mysql
yum install cmake gcc* ncurses-devel -y
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.5.49 -DDEFAULT_CHARSET=utf8 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql -DWITH_EXTRA_CHARSETS=all -DWITH_READLINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DDEFAULT_COLLATION=utf8_general_ci
参数说明:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql ----- 安装目录 这是MySQL的默认安装位置
-DINSTALL_DATADIR=/usr/local/mysql/data ----- 数据库存放目录
-DDEFAULT_CHARSET=utf8 ----- 使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci ----- 校验字符
-DEXTRA_CHARSETS=all ----- 安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1 ----- 允许从本地导入数据
make && make install
ln -s /usr/local/mysql5.5.49 /usr/local/mysql
chown -R mysql.mysql /usr/local/mysql
cd /usr/local/mysql/support-files/
cp my-medium.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
cd /usr/local/mysql/scripts/
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
vim /etc/my.cnf
basedir = /usr/local/mysql
datadir = /data/mysql
port = 3306
socket = /data/mysql.sock
chkconfig mysqld on
echo 'export PATH="$PATH:/usr/local/bin:/usr/local/mysql/bin"' >> /etc/profile
echo 'export PATH="$PATH:/usr/local/bin:/usr/local/mysql/bin"' >> /etc/profile
source /etc/profile
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
/etc/init.d/mysqld start
mysqladmin -u root password "123" 设置mysql root密码
主从配置过程:
1、master配置
1)修改配置文件、开启二进制日志(没修改) vim /etc/my.cnf
log-bin=mysql-bin
skip-name-resolve
server-id = 1 //保证主从不一样
2)重启服务
/etc/init.d/mysqld restart
3)授权一个实现复制数据的用户
mysql> grant replication slave,reload,super on *.* to slave@192.168.1.94 identified by '123456';
//此处的IP为从服务器的IP
4)做一次全库备份
mysql> flush tables with read lock; //给所有的表加上读锁,为了保证数据的一致性
mysqldump -u root -p123 --all-databases > /tmp/all.sql --新库,没做
5)将全备数据拷贝到从服务器上
scp /tmp/all.sql 192.168.1.op94:/tmp/
2、slave配置
mysqladmin -u root password "456"
软件安装,最好主从数据库的软件版本一致
1)修改配置文件
vim /etc/my.cnf
relay_log=mysql-relay //开启中继日志""
relay_log_index=mysql-relay.index //中继日志的索引文件
server-id = 2 //保证跟主服务不一致,原有的将1修改为2
2)重启服务
/etc/init.d/mysqld restart
------------ ------------ ------------ ------------
对于不干净的从服务器,需执行以下操作 ---新库,所以没有做
cd /data/mysql
rm -rf *
cd /usr/local/mysql5.5/scripts/
./mysql_install_db --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql
------------ ------------ ------------ ------------
3)恢复来自主服务器的数据
mysql -uroot -p456 < /tmp/all.sql //全库恢复 ----新库,没做
4)在master上查看
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 1306 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
5)在slave上同步数据,需要告诉slave之后从master的哪个位置开始同步
mysql> change master to master_host="192.168.1.93",master_port=3306,master_user="slave",master_password="123456",master_log_file="mysql-bin.000002",master_log_pos=1306;
mysql> slave start; //开启从服务器
mysql> show slave status\G 确保这两行是Yes
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
-------------------------------------------------------------
如果上述两项有No,那么就需要排查原因,出现问题最多的就是在change master 语句上
-------------------------------------------------------------
6)主服务器解锁
mysql> unlock tables;
7)测试主从同步
主从搭建完毕。
主主配置过程: ---将主从的步骤重新做一次,IP对换。
1、master配置
1)修改配置文件、开启二进制日志(没修改) vim /etc/my.cnf
log-bin=mysql-bin
skip-name-resolve
server-id = 2 //保证主从不一样
2)重启服务
/etc/init.d/mysqld restart
3)授权一个实现复制数据的用户
mysql> grant replication slave,reload,super on *.* to slave@192.168.1.93 identified by '123456';
//此处的IP为从服务器的IP
4)做一次全库备份
mysql> flush tables with read lock; //给所有的表加上读锁,为了保证数据的一致性
2、slave配置
mysqladmin -u root password "123"
软件安装,最好主从数据库的软件版本一致
1)修改配置文件
vim /etc/my.cnf
relay_log=mysql-relay //开启中继日志""
relay_log_index=mysql-relay.index //中继日志的索引文件
server-id = 1
2)重启服务
/etc/init.d/mysqld restart
4)在master上查看
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 1306 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
5)在slave上同步数据,需要告诉slave之后从master的哪个位置开始同步
mysql>reset slave;
mysql> change master to master_host="192.168.1.94",master_port=3306,master_user="slave",master_password="123456",master_log_file="mysql-bin.000002",master_log_pos=1306;
mysql> slave start; //开启从服务器
mysql> show slave status\G 确保这两行是Yes
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
-------------------------------------------------------------
如果上述两项有No,那么就需要排查原因,出现问题最多的就是在change master 语句上
-------------------------------------------------------------
6)主服务器解锁
mysql> unlock tables;
7)测试主主同步
主主搭建完毕。
1> 正常切换
1)从服务器检查SHOW PROCESSLIST语句的输出,直到你看到Has read all relaylogwaiting for the slave I/O thread to update it
2)确保从服务器已经处理了日志中的所有语句。 mysql> STOP SLAVE IO_THREAD
当从服务器都执行完这些,它们可以被重新配置为一个新的设置。
3)在被提升为主服务器的从服务器上,发出 STOP SLAVE和RESET MASTER和RESET SLAVE操作。
4)然后重启mysql服务。
5)在备用服务器(新的主服务器)创建用户grant replication slave on *.* torepdcs@'IP of A' identified by 'replpwd'
grant allprivileges on *.* to 'repdcs'@'IP' identified by replpwd;
6) 在主服务器上RESET MASTER。然后CHANGE MASTER TOMASTER_HOST='原从服务器IP',MASTER_USER='用户名',MASTER_PASSWORD='密码' ,master_log_file='master-bin.000015' ;
7)查看状态 show slave status \G;
Show master status \G;
如果还不行再次重启主库,并在备库上执行CHANGE MASTER TOMASTER_HOST='192.168.0.110',MASTER_USER='repdcs',MASTER_PASSWORD='111111',master_log_file='mysqlbin.000002';
8)修改应用的连接地址到新的主库
切换完成。
2> 主机直接宕机
1> 在备机上执行STOP SLAVE 和RESET MASTER
2> 查看show slave status \G;
3> 然后修改应用的连接地址。
一般大部分切换为直接宕机主机已经没法提供服务
从任何主机上使用root用户,密码:youpassword(你的root密码)连接到mysql服务器:
代码如下 | 复制代码 |
# mysql -u root -proot |
链接VIP就可以了