Linux 安装 MySQL / MySQL 主从备份

标签: linux mysql mysql | 发表时间:2012-04-15 10:50 | 作者:~怪^_*兽~
出处:http://www.blogjava.net/

!! 假定所有安装包均在 /share目录,安装目录为 /opt !!

$ ll /share
-rw-r--r-- 1 root root  129041873 Nov 29 21:06 mysql-5.1.54-linux-i686-glibc23.tar.gz

==============================================================
========================= 安装 MySQL =========================
==============================================================

0、卸载自带 MSQL

rpm -qa | grep mysql   
mysql-5.0.77-4.el5_4.2
rpm -e mysql-5.0.77-4.el5_4.2 dovecot-1.0.7-7.el5.i386

 

1、解压文件

$ groupadd mysql   
$ useradd -g mysql mysql
$ cd /share
$ tar zxf mysql-5.1.54-linux-i686-glibc23.tar.gz
$ mv mysql-5.1.54-linux-i686-glibc23 /opt
$ cd /opt
$ ln -s mysql-5.1.54-linux-i686-glibc23 mysql
$ chown -R mysql.mysql mysql-5.1.54-linux-i686-glibc23
$ cp mysql/support-files/my-large.cnf mysql/my.cnf
$ cp mysql/support-files/mysql.server /etc/rc.d/init.d/mysql

 

2、修改配置

$ vi /opt/mysql/my.cnf (参考下面配置)   

[client]
default-character-set=utf8
[mysqld]
basedir= /opt/mysql
#skip-locking
skip-external-locking
character-set-server=utf8
default-storage-engine=INNODB
max_connections=500

$ vi /etc/rc.d/init.d/mysql (参考下面配置)

basedir=/opt/mysql
datadir=$basdir/data

 

3、创建数据库

$ cd /opt/mysql   
$ ./scripts/mysql_install_db --user=mysql

 

4、创建 mysql 服务

$ chkconfig --add mysql   
$ chkconfig --level 23456 mysql on

 

5、初始化数据库

$ service mysql start   
$ cd /opt/mysql
$ ./bin/mysql_secure_installation

 

------------------------------------------

下载 service 脚本: services/mysql

------------------------------------------

 

==============================================================
========================= MySQL 主从备份 =========================
==============================================================

主机 IP: 192.168.1.101 (db-server-1)
从机 IP: 192.168.1.110 (db-server-2)
----------------------------------------------------------
需要备份的数据库: db1、db2
----------------------------------------------------------
!!! 假设 MySQL 默认 RPM 安装 !!!
    配置文件: /etc/my.cnf
    安装目录: /usr/
    数据库目录: /var/lib/mysql/
    启动开关: service mysql {start|stop|status|restart|condrestart|try-restart|reload|force-reload}

----------------------------------------------------------
准备工作: 主机和从机个开启两个终端:
    A、主1终端、从1终端运行 mysql
        $ /usr/bin/mysql -uroot -p
            Enter password:
    B、主2终端、从2终端执行 shell 命令
        (首先打开 mysql 日志)
        (主2终端) $ tail -f /var/lib/mysql/db-server-1.err &
        (从2终端) $ tail -f /var/lib/mysql/db-server-2.err &
----------------------------------------------------------

1、(主2终端) 编辑主机 MSQL 配置文件

$ vi /etc/my.cnf
  [mysqld]   
server-id = 1
log-bin = mysql-bin
binlog_format = mixed
binlog-do-db = db1
binlog-do-db = db2
binlog-ignore-db = test
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
$ service mysql restart

 

2、(主1终端) 主机 MySQL 建立备份用户 (backup / mypass)

msyql> GRANT FILE, REPLICATION SLAVE, REPLICATION CLIENT, SUPER, RELOAD ON *.* TO backup@'192.168.1.110'IDENTIFIED by 'mypass';   
Query OK, 0 rows affected (0.09 sec)

(完成后可以在从机上做链接测试 [ 从2终端上输入命令: /usr/bin/mysql -h192.168.1.101 -ubackup -p ],如果不能连通请检查主机防火墙或主机 MySQL 端口)

 

3、(主1终端) 锁定主机数据库表

msyql> FLUSH TABLES WITH READ LOCK;   
Query OK, 0 rows affected (0.13 sec)

 

4、(主1终端) 查看主机 Master 状态

mysql> SHOW MASTER STATUS;   
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000033 | 458 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.01 sec)

 

5、(主2终端) 备份主机数据库

$ cd /var/lib/mysql   
$ tar zcvf db_backup.tar ibdata* ib_logfile* db1/ db2/
$ mv db_backup.tar /tmp

 

6、(从2终端) 从机导入主机数据库

$ service mysql stop   
$ cd /var/lib/mysql
$ rm -f ibdata* ib_logfile* mysql-bin.* master.info relay-log.info db1/ db2/
$ scp 192.168.1.101:/tmp/db_backup.tar .
$ tar zxvf db_backup.tar
$ chown -R mysql.mysql ibdata* ib_logfile* db1/ db2/
$ rm -f db_backup.tar

 

######################## 步骤 5/6 的另一种方法 (相对较慢) ########################   
# 5、(主2终端) 备份主机数据库
# ------------------------------
# $ cd /tmp
# $ /usr/bin/mysqldump -uroot -pmypass --default-character-set=utf8 --opt --extended-insert=false --triggers --routines --hex-blob -x -q db1 > db1.sql
# $ /usr/bin/mysqldump -uroot -pmypass --default-character-set=utf8 --opt --extended-insert=false --triggers --routines --hex-blob -x -q db2 > db2.sql
# $ tar zcvf db_backup.tar db1.sql db2.sql

# 6、(从2终端) 导入主机数据库
# ------------------------------
# $ cd /tmp
# $ scp 192.168.1.101:/tmp/db_backup.tar .
# $ tar zxvf db.tar
# $ /usr/bin/mysql -uroot -p
# Enter password:
# mysql> create database db1;
# mysql> use db1;
# mysql> source /tmp/db1.sql;
# mysql> create database db2;
# mysql> use db2;
# mysql> source /tmp/db2.sql;
# mysql> exit;
# $ rm -f db.tar db1.sql db2.sql
##################################################################################


7、(从2终端) 编辑从机 MySQL 配置文件

$ vi /etc/my.cnf   

[mysqld]
server-id = 2
log-bin=mysql-bin
binlog_format=mixed
replicate-do-db = db1
replicate-do-db = db2
replicate-ignore-db = test
replicate-ignore-db = mysql
replicate-ignore-db = information_schema
relay-log = db-server-2-relay-bin
log-slave-updates
$ service mysql start

 

8、(从1终端) 设置备份点

mysql> slave stop;   
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.101', MASTER_PORT='3306', MASTER_USER='backup', MASTER_PASSWORD='mypass', MASTER_LOG_FILE='mysql-bin.000033', MASTER_LOG_POS=458;
Query OK, 0 rows affected (0.02 sec)
mysql> slave start;
Query OK, 0 rows affected (0.02 sec)

 

9、解锁主机数据库表

msyql> UNLOCK TABLES;   
Query OK, 0 rows affected (0.00 sec)

 

10、其他工作

    (删除主从机器的临时文件: db_backup.tar)

 

==============================================================
=================== 配置 MySQL 互为主从备份 ==================
==============================================================

 (假设已根据上面的步骤配置好 MySQL 主从备份)


1、(从2终端) 编辑从机 MSQL 配置文件

$ vi /etc/my.cnf   
[mysqld]
# 加入下面配置
binlog-do-db = db1
binlog-do-db = db2
binlog-ignore-db = test
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
$ service mysql restart

 

2、(从1终端) 从机 MySQL 建立备份用户 (backup / mypass)

msyql> GRANT FILE, REPLICATION SLAVE, REPLICATION CLIENT, SUPER, RELOAD ON *.* TO backup@'192.168.1.101'IDENTIFIED by 'mypass';   
Query OK, 0 rows affected (0.09 sec)

(完成后可以在主机上做链接测试 [ 主2终端上输入命令: /usr/bin/mysql -h192.168.1.110 -ubackup -p ],如果不能连通请检查主机防火墙或主机 MySQL 端口)

 

3、(主2终端) 编辑主机 MySQL 配置文件

$ vi /etc/my.cnf   

[mysqld]
# 加入下面配置
replicate-do-db = db1
replicate-do-db = db2
replicate-ignore-db = test
replicate-ignore-db = mysql
replicate-ignore-db = information_schema
relay-log = db-server-1-relay-bin
log-slave-updates
$ service mysql start

 

4、(主1终端) 设置备份点

mysql> slave stop;   
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.101', MASTER_PORT=3306, MASTER_USER='backup', MASTER_PASSWORD='mypass';
Query OK, 0 rows affected (0.02 sec)
mysql> slave start;
Query OK, 0 rows affected (0.02 sec)






 



~怪^_*兽~ 2012-04-15 10:50 发表评论

相关 [linux mysql mysql] 推荐:

Linux Ksplice,MySQL and Oracle

- Syn - DBA Notes
Oracle 在 7 月份收购了 Ksplice. 使用了 Ksplice 的 Linux 系统,为 Kernel 打补丁无需重启动,做系统维护的朋友应该明白这是一个杀手级特性. 现在该产品已经合并到 Oracle Linux 中. 目前已经有超过 700 家客户,超过 10 万套系统使用了 Ksplice (不知道国内是否已经有用户了.

Linux 安装 MySQL / MySQL 主从备份

- - BlogJava-首页技术区
假定所有安装包均在 /share目录,安装目录为 /opt !!. ========================= 安装 MySQL =========================. $ vi /opt/mysql/my.cnf (参考下面配置). $ vi /etc/rc.d/init.d/mysql (参考下面配置).

linux 下mysql自启动

- - 数据库 - ITeye博客
如果你都是按照默认配置安装的那么只要按照如下步骤就可以了. 1、cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql   将服务文件拷贝到init.d下,并重命名为mysql. 2、chmod +x /etc/init.d/mysql    赋予可执行权限.

Linux中对MySQL优化

- - 数据库 - ITeye博客
要求: MySQL数据库管理与维护. 1、熟悉Linux上安装、配置和优化MySQL数据库,. 2、熟悉 Mysql的AB复制以及读写分离的实现,能完成添加从库,从库变主库等操作;. 3、精通mysql数据库的查询、子查询、插入、更新等操作,以及建数据库、表和索引;. 4、掌握表的连接、视图,以为存储过程和函数的使用;.

linux 定期自动备份mysql的shell

- - OurMySQL
刚才有个玩家在站上玩游戏,提醒了我要及时备份数据啊,万一哪天服务器挂了把他们的数据丢了,我可就是罪人了. 一直打算放个自动备份的shell,都没有放. 安全起见,直接用Root执行的:. 以下是自动自动备份shell,只保留最新5天. AutoMySQLBackup — 轻量级MySQL备份方案. LINUX/win2003下mysql怎么定期自动备份数据库.

Linux下C语言执行MySQL语句

- - CSDN博客数据库推荐文章
本文出自    http://blog.csdn.net/shuangde800. 执行SQL语句的增、删、改、查的主要API函数为:. 函数接收参数连接句柄和字符串形式的有效SQL语句(没有结束的分号,这与mysql工具不同). 如果包含二进制数据的查询,要使用mysql_real_query..

Linux安装mysql——源码安装

- - Linux - 操作系统 - ITeye博客
1.假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源文件. (1)先安装cmake(mysql5.5以后是通过cmake来编译的). (2)创建mysql的安装目录及数据库存放目录. //安装mysql [root@ rhel5~]#mkdir -p /usr/local/mysql/data.

Linux上MySQL 优化三板斧

- - 乐无限-微信公众号内容聚合站
Linux上MySQL 优化三板斧. Linux上MySQL 优化三板斧. 现在MySQL运行的大部分环境都是在Linux上的,如何在Linux操作系统上根据MySQL进行优化,我们这里给出一些通用简单的策略. 这些方法都有助于改进MySQL的性能. 你仔细检查的话,有些服务器上会有的一个有趣的现象:你cat /proc/cpuinfo时,会发现CPU的频率竟然跟它标称的频率不一样:.

Linux、mysql、tomcat大并发下的配置

- - Linux - 操作系统 - ITeye博客
    因为之前一直没太接触过项目实现部署的问题,所以中间出现了N多问题,现在有时间了,做了一个整理,已备后用. 此处不包括上一层服务器的负载,如使用nginx/apache等. 配置项目中的连接池最大连接数 <= mysql的max_connections(如项目有集群,则乘N). 可解决出现:MySQL 提示 Too many connections ( 1040 ).

(转)针对MySQL的Linux性能调优技巧[翻译]

- - jackyrong
原文作者: Alexander Rubin,Percona 工程师. 原文连接:Linux performance tuning tips for MySQL. 为了方面阅读,我没依照原文按行逐句的进行翻译. 另外,我自己的扩充了一下基础知识点,很多知识点也是我第一次去学习,翻阅了一些资料. 原文中对Linux系统参数的优化主要分为文件系统、内存与swap、CPU三方面.