linux安装mysql:
首先查看是否已经安装过mysql
#rpm -qa |grep mysql (或rpm -qa |grep MySQL)
如果已安装可先卸载mysql,如
#rpm -e mysqlclient10-3.23.58-4.RHEL4.1
然后再安装
rpm -ivh MySQL-server-5.1.7-0.i386.rpm MySQL-client-5.1.7-0.i386.rpm
如果启动不成功则需要查看/var/lib/mysql/orcl11.err错误日志
[root@orcl11 mysql]# tail orcl11.err
090811 13:49:37 InnoDB: Started; log sequence number 0 0
090811 13:49:37 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
090811 13:49:37 [ERROR] Do you already have another mysqld server running on port: 3306 ?
090811 13:49:37 [ERROR] Aborting
090811 13:49:37 InnoDB: Starting shutdown...
090811 13:49:38 InnoDB: Shutdown completed; log sequence number 0 46409
090811 13:49:38 [Note] /usr/sbin/mysqld: Shutdown complete
090811 13:49:38 mysqld_safe mysqld from pid file /var/lib/mysql/orcl11.pid ended
[root@orcl11 mysql]# pstree|grep mysql
|-mysqld_safe---mysqld
[root@orcl11 mysql]# killall mysqld
[root@orcl11 mysql]# pstree|grep mysql
[root@orcl11 mysql]# ls
ibdata1 ib_logfile0 ib_logfile1 mysql orcl11.err test
[root@orcl11 mysql]# service mysqld start
mysqld: unrecognized service
[root@orcl11 mysql]# service mysql start
=============配置mysql复制步骤==============
以下是主服务器刚搭建好,没有运行实际数据的情况:
1)首先在主服务器上配置:
在/etc/my.cfg(如果没有该文件,则从其他地方拷贝my*.cnf再做修改)修改
#n为正整数,表示服务器id号,注意主从服务器上的这个数字不能相同
server-id=n
#打开二进制日志
log-bin=mysql-bin
#忽略mysql数据库复制
binlog-ignore-db=mysql
#***表示其他要忽略的数据库,要用实际的数据名替换
binlog-ignore-db=***
2)创建复制用户
grant replication slave on *.* to repuser@'%' identified by 'repuser';
==============以下在从服务器配置============
在/etc/my.cnf中配置
#m为正整数,服务器id,要保证唯一
server-id =m
#主服务器ip
master-host=192.168.66.11
#主服务器上的复制用户帐号
master-user= repuser
#主服务器上的复制用户密码
master-password=repuser
#中继日志名称
relay-log=relay-bin
#中继索引文件名称
relay-log-index=relay-bin
#忽略mysql数据库复制
replicate-ignore-db=mysql
3)配置完毕后按顺序重启主、从数据库,然后
在从服务器上执行
grant replication on *.* to test@'%' identified by test;
给test用户分配权限,
再用test用户登陆,执行
show slave status\G 来查看从数据库状态
show master status 主数据库状态
4)故障的查看
如果发现复制无法进行,在从数据库上通过show slave status\G 来查看错误原因
=========在已经创建好的复制环境中增加从数据库============
和配置第一个从数据库一样,没有区别
=========对触发器变更的记录也会复制======
如在主数据库上有a表和b表
在a表上创建一个触发器
create trigger trg_a before insert on a for each row insert into b set id = NEW.id;
a表上增加一条记录,b表上也会相应增加一条记录
则在从服务器上系统会自动增加b表的记录