2010年11月26日星期五

Linux下Mysql安装以及主从同步配置【2010.08.10】

Linux下Mysql安装以及主从同步配置【2010.08.10】: "

一.安装MYSQL 5.1.34

# chmod 755 mysql-5.1.34-linux-i686-icc-glibc23.tar.gz //设置mysql-5.1.34-linux-i686-icc-glibc23.tar.gz属性为755

# tar xzvf mysql-5.1.34-linux-i686-icc-glibc23.tar.gz //解压

# cp -r mysql-5.1.34-linux-i686-icc-glibc23 /usr/local //

# mv /usr/local/mysql-5.1.34-linux-i686-icc-glibc23 mysql //

# cd mysql //

# groupadd mysql // 建立mysql组

# useradd mysql -g mysql //建立mysql用户并且加入到mysql组中

# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

在 support-files目录下有4个模版文件,我们选择其中一个座位Mysql的配置文件,覆盖/etc/my.cnf(系统默认的配置,其中设置了性能参数和Mysql的一些路径参数)

# cd /usr/local/mysql 进入mysql目录

# ./scripts/mysql_install_db –user=mysql //初试化表并且规定用mysql用户来访问。初始化表以后就开始给mysql和root用户设定访问权限


# chown -R root . //设定root能访问/usr/local/mysql(后面的点不能丢掉)

# chown -R mysql data //设定mysql用户能访问/usr/local/mysql/data 里面存的是mysql的数据库文件.这个目录是在/etc/my.cnf中有配置,在mysql_install_db时产生。

# chown -R mysql data/ //设定mysql用户能访问/usr/local/mysql/data/mysql下的所有文件

# chgrp -R mysql .//设定mysql组能够访问/usr/local/mysql(要回到/usr/local/ 目录下)(后面的点不能丢掉)

# /usr/local/mysql/bin/mysqld_safe –user=mysql & 运行mysql 如果没有问题的话,应该会出现类似这样的提示:

[1] 42264

# Starting mysqld daemon with databases from /usr/local/mysql/var

如果出现 mysql ended这样的语句,表示Mysql没有正常启动,你可以到log中查找问题,Log文件的通常在/etc/my.cnf中配置。大多数问题是权限设置 不正确引起的。

# /usr/local/mysql/bin/mysqladmin -u root password 45261067 //默认安装密码为空,为了安全你必须马上修改.

# cp support-files/mysql.server /etc/rc.d/init.d/mysqld 设置使mysql每次启动都能自动运行

# chmod 700 /etc/init.d/mysqld

# chkconfig –add mysqld

# chkconfig –level 345 mysqld on

# service mysqld start //启动mysqld服务

# netstat -atln //查看3306端口是否打开。要注意在防火墙中开放该端口。


二、主从配置

如:主机(192.168.1.3)

vi etc/my.cnf (添加到[mysqld]下面)

server-id = 1

binlog-do-db = mysql(需同步的数据库名)

binlog-do-db = test


注意:在my.cnf下有个默认的”server-id = 1″和”log-bin”必需”禁掉”

/usr/local/mysql/bin/mysql -uroot -p

命令格式:#GRANT ALL PRIVILEGES ON *.* TO root@192.168.1.4(从) IDENTIFIED BY ‘密码(数据库密码)’ WITH GRANT OPTION; //授予从机在主机数据库权限

GRANT ALL PRIVILEGES ON *.* TO miikey@192.168.1.4 IDENTIFIED BY ’123456′ WITH GRANT OPTION; //授予从机在主机数据库权限

show master status;(查看指针是否一致)

———————————————————————————–



如:从机:(192.168.1.4)

vi etv/my.cnf (添加到[mysqld]下面)

server-id = 4(和主机错开)

master-host = 192.168.1.6 //主机IP

master-user = root

master-password = 123456

master-port = 3306

replicate-do-db = mysql(必需和主机保持一致)

replicate-do-db = test(必需和主机保持一致)


注意:在my.cnf下有个默认的”server-id = 1″和”log-bin”必需”禁掉”

/usr/local/mysql/bin/mysql -uroot -p

#GRANT ALL PRIVILEGES ON *.* TO root@IP(主) IDENTIFIED BY ‘密码(数据库密码)’ WITH GRANT OPTION; //授予主机在从机数据库权限

GRANT ALL PRIVILEGES ON *.* TO jvones@192.168.1.6 IDENTIFIED BY ’45261067′ WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO miikey@192.168.1.6 IDENTIFIED BY ’123456′ WITH GRANT OPTION;

show slave status\G;(查看指针是否一致,如果命令不行,就把;去掉试试)



———————————-同理可以增加多台SLAVE从机————————————————-



测试方法:

可先查看主,从机的指计是否一致.(主机:show master status; 从机:show slave status\G;)

用phpmyadmin登录主机,删掉其中某一个数据库里的字段(也可以增加),在到从机上看,是否有同步.(正常下主机有任何的操作,从机上都会有同步显示)

"