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