2013年5月3日星期五

centos下 mysql 5.5 数据库主从配置(测试成功!)

主服务器设定为:'192.168.1.253',前提是主从服务器都正确安装完毕,centos操作系统.
一、主数据库配置
 1、编辑/etc/my.cnf 主数据库配置文件。
server-id = 1
#需要进行复制的数据库
binlog-do-db = mydatabase
#不需要进行复制的数据库
replicate-ignore-db = mysql
#生成的同步数据所需要的文件
log-bin=syslog

2、重启mysql,登陆Mysql,设置从数据库所需要的权限,设置为可以从任何机器登陆,账号/密码:slave/123456
grant replication slave,reload,super on *.* to 'slave'@'%' identified by '123456';

3、查看状态
show master status;

二、从数据库配置
1、编辑/etc/my.cnf 从数据库配置文件。
由于Mysql版本从5.1.7以后开始就不支持“master-host”类似的参数,用配置文件设置主从同步时,出现:mysqld: unknown variable 'master-host=127.0.0.1'
#将配置文件中的server-id该为2
server-id = 2
#需要进行同步的数据库名称
replicate-do-db = mydatabase
2、重启mysql,登陆Mysql,设置同步设置,其中syslog.000001为日志文件,master_log_pos=0为日志开始复制的位置,即:从syslog.000001的0位置同步数据,日志文件和行号根据实际情况进行处理。
change master to master_host='192.168.1.253',master_user='slave',master_password='123456',master_log_file='syslog.000001',master_log_pos=0;
3、启动从数据库数据同步命令:
   start slave;
4、查看从数据库同步状态,Slave_IO_Status,Slave_Io_Running,Slave_SQL_Running
  show slave status;
5、需要重新进行同步的时候,先停止同步服务器,重新设置,同步的日志文件master_log_file和同步起始位置master_log_pos:
   stop slave;

Mysql错误Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist



数据库运行一段时间出现如下错误:Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist ,这到底是为什么呢?我们该怎么样解决呢

解决办法如下:不过数据丢了 气愤。。。。。。。。。。。。。。。。。。
进入mysql应用目录,cd /usr/local/mysql ;l然后执行./bin/mysql_install_db –usrer=mysql datadir=/var/lib/mysql 这个是我的datadir目录,你可以去/etc/my.cnf里面查找就ok了!最后启动mysql

/usr/local/mysql/bin/mysqld_safe –user=mysql& 然后登陆数据库,如果提示/tmp/mysql.sock错误的话,就重新链接一下mysql.sock文件即可。链接命令如下:
ln -s /var/lib/mysql/mysql.sock /tmp/ 这样就可以登陆数据库了
如果是yum安装或是rpm安装的包,则需要完全卸载,然后在安装,重启就ok了!

yum remove mysql*

MySQL Daemon failed to start


  一般MYSQL不能正常启动的时候,需要查看下日志文件:
tail /var/log/mysqld.log 显示所有日志
tail -n 20 /var/log/mysqld.log 显示最近的20条日志
根据日志情况,具体分析处理,一般是
mysql 数据库的权限问题:chmod 777 -r /var/lib/mysql;
注意数据库用户:chown -R mysql:mysql /var/lib/mysql